XML 가져오기 마법사는 XML과 JSON 파일이라는 두 가지 유형의 내포된 텍스트 데이터를 가져옵니다. 두 유형의 파일 모두 계층 관계를 표현하기 위해 내포 가능한 구조적 텍스트를 포함합니다. 이 마법사는 데이터 테이블을 생성하기 위해 값을 포함하는 계층 요소와 행을 결정하는 요소를 선택하는 데 도움이 됩니다.
내포된 텍스트 파일을 짧은 스토리가 담긴 책이라고 생각해 보십시오. 어떤 스토리는 장(chapter)을 포함하고 또 어떤 것은 단락만으로 구성될 수 있습니다. 장은 단락으로 구성되고 단락은 문장으로 구성됩니다. 다음은 이러한 책 구조를 보여 주는 전체 트리의 예입니다.
<book>
<story name="car poll">
<wheels>4</wheels>
<para><name>chev</name></para>
<para><name>ford</name></para>
<para><name>volk</name></para>
</story>
<story name="big class">
<para><name>ralph</name><height>6</height></para>
<para><name>billy</name><height>5</height></para>
</story>
<story name="cheese" location="NC">
<chapter name="american">
<para>1<price>2.00</price><quantity>2</quantity></para>
<para>2<price>2.10</price><quantity>4</quantity></para>
<para>3<price>2.20</price><quantity>3</quantity></para>
</chapter>
<chapter name="swiss">
<para>1<price>3.00</price><quantity>3</quantity></para>
<para>2<price>3.10</price><quantity>2</quantity></para>
</chapter>
</story>
</book>
이 XML 문서(book)에는 세 개의 짧은 스토리(story)가 포함되어 있으며 각 스토리는 서로 다른 데이터 테이블입니다. 이제 데이터 테이블을 한 번에 하나씩만 가져온다고 가정해 보겠습니다. 이 특정 XML 파일은 모든 테이블에서 단락을 사용하여 테이블의 행을 나타냅니다. 단락별 내용 배열은 필요하지 않습니다. 다른 두 테이블보다 약간 더 복잡한 "cheese" 테이블을 가져오려는 경우 각 행에 "american" 또는 "swiss" 값을 포함하는 "variety" 열이 필요할 수 있습니다. "Price" 및 "quantity" 열도 필요합니다. 또한 <para>의 1, 2, 3, 1, 2 값에 대해 명확히 정의된 이름이 없는 열도 필요할 수 있습니다. 이렇게 총 5개 행이 생성됩니다. 마지막으로 "location" 값 "NC"에 대한 테이블 변수나 열이 필요할 수 있습니다. JSON 파일은 각각 열 머리글과 데이터로 가져오는 이름-값 쌍으로 구성됩니다. 다음 예에서는 각 문자열의 첫 번째 이름이 "Grocery Store Purchases"에 추가된 후 열 머리글로 변환됩니다(예: "Grocery Store Purchases.Item"). 테이블의 첫 번째 셀 값은 "avocado"입니다. 다음 열의 이름은 "Grocery Store Purchases.Category"로 지정되며, "Produce"는 두 번째 열의 첫 번째 셀 값이 됩니다.
{"Grocery Store Purchases":[
{"Item":"avocado", "Category":"Produce"},
{"Item":"bread", "Category":"Bakery"},
{"Item":"chocolate", "Category":"candy"}
]}
XML 가져오기 마법사에서 XML 또는 JSON 파일을 가져오려면
1. 파일 > 열기를 선택합니다.
2. JMP의 Samples/Import Data 폴더로 이동합니다.
3. Windows의 경우, 파일 유형을 XML 데이터 파일로 설정합니다.
4. Book.xml을 선택하고 열기를 클릭합니다.
파일이 XML 가져오기 마법사에서 열립니다.
참고: "데이터 파일 열기" 창에 "데이터(미리보기 사용)"가 선택되어 있으므로 XML 파일이 자동으로 마법사에서 열립니다. XML 및 JSON 파일을 직접 가져올 수도 있습니다. 자세한 내용은 XML 파일 바로 가져오기에서 확인하십시오.
1. "행" 열에서 데이터 테이블에 새 행을 생성할 요소를 선택합니다.
이 예에서는 </para>가 처리될 때 행이 생성되고 현재 값으로 해당 행의 열이 작성됩니다.
그림 3.29 "행" 열에서 선택된 행 요소
2. "열" 열의 열 원형 옆에서 해당 열의 데이터 유형을 선택합니다.
– location: 문자
– name: 문자(두 인스턴스 모두)
– price: 숫자
– quantity: 숫자
팁: "샘플러" 열의 값을 참조하면 해당 데이터 유형을 쉽게 결정할 수 있습니다.
그림 3.30 "열" 열에 할당된 데이터 유형
3. "채우기" 열에서 셀을 채울 값을 지정합니다.
"location"과 두 개의 "name" 인스턴스에 대해 "채우기" 원을 클릭하고 +book/story를 선택합니다. 이렇게 설정하면 <book>/<story> 노드가 다시 시작될 때까지 셀에 값이 채워집니다.
그림 3.31 "채우기" 열에 선택된 채우기 값
각 행을 데이터 테이블에 추가할 때 JMP는 열에 새 값이 발견되지 않을 경우 다음 행에 대해 수행할 작업을 결정합니다. 예를 들어 각 "cheese" 종류에 대해 "chapter" 이름이 지정되지 않았고 "american"과 "swiss" 다음에 결측값이 이어집니다.
– "한 번 사용" 옵션은 값을 한 번만 사용하고 더 이상 기억하지 않으므로 데이터를 다시 제공하지 않으면 2행, 3행, 5행은 결측값으로 처리됩니다.
– "무한 사용" 옵션은 한 번 입력한 값을 계속 사용하지만 새로운 값이 나타나면 해당 값으로 대체하도록 지정합니다.
– 이 예에서 선택한 +book/story 옵션은 시작 <book>/<story> 요소가 발견되면
<book>/<story> 노드가 다시 시작될 때까지 JMP가 셀 값을 채운다는 의미입니다. -<element> 옵션은 요소의 종료 태그, 즉 노드가 끝나는 위치를 나타냅니다.
4. "형식" 열에서 "price" 옆의 최적을 클릭하고 고정 소수점을 선택하여 소수 자릿수 "2"를 입력한 후 확인을 클릭합니다.
그림 3.32 "형식" 열에 선택된 형식 유형
5. "열 이름" 열에서 Figure 3.33에 표시된 것과 같이 열 이름을 바꿉니다.
그림 3.33 "열 이름" 열에서 이름이 바뀐 열
6. 창 하단에서 확인을 클릭합니다.
지정한 대로 데이터를 데이터 테이블로 가져오는 작업이 수행됩니다.
그림 3.34 최종 데이터 테이블
XML 가져오기 마법사의 상단에 있는 통계량 열을 클릭하여 요소에 대한 통계량을 볼 수 있습니다.
발생 횟수
요소의 발생 횟수입니다. 루트 요소는 한 번만 나오며 대개 행을 만드는 데 사용되는 요소가 아닙니다. 해당 요소가 나타나는 횟수만큼 행이 생성됩니다.
행을 여러 개 선택할 경우 실제 생성되는 수가 총 "발생 횟수"보다 적을 수 있습니다. 다른 요소가 끝난 직후에 바로 끝나는 요소는 별도의 행을 생성하지 않기 때문입니다. 예를 들어 <para>와 <chapter> 모두를 행 표식으로 선택할 경우 장이 마지막 단락 바로 다음에서 끝날 때는 추가 행이 생성되지 않습니다. 하지만 마지막 단락 다음과 장이 끝나는 곳 앞에 <chapter>에 대한 <footnote>가 있으면 추가 행을 생성할 수 있습니다. 이렇게 하려면 "footnote" 열을 선택해야 합니다.
쓰기 횟수
소스에 값을 쓸 수 있는 횟수입니다. 횟수가 0이면 모든 값이 결측으로 처리되므로 이 요소로 열을 생성하지 않는 것이 좋습니다.
고유 값 수
고유 값의 수입니다("쓰기 횟수" 값보다 적거나 같음).
반복 횟수
이 요소가 상위 요소 내에서 반복되는 최대 횟수입니다. 반복 횟수가 많을수록 행을 생성하기에 적합한 요소입니다. 이 요소가 반복되고 열로 사용되는 경우 문자 열은 목록을 생성합니다. 표현식 열은 중괄호로 묶은 {lists}를 사용하여 값의 시작과 끝을 나타내므로 더 적합할 수 있습니다. 숫자 열에는 반복 값 중 하나만 사용됩니다.
샘플러
요소 값입니다.
추측
사용자가 선택한 데이터 테이블의 크기에 따라 JMP가 설정을 선택할 수 있습니다.
• 행 중심 추측은 가능한 한 많은 행을 만드는 요소를 선택합니다(기본 설정).
• 열 중심 추측은 가능한 한 많은 열을 만드는 요소를 선택합니다.
• 최다 요소 추측은 모든 데이터를 테이블로 가져오기 위해 필요한 행 수만큼 요소를 선택합니다. 테이블이 예상보다 클 수도 있습니다.
실행 취소
창에서 마지막으로 변경한 사항을 되돌립니다.
다시 실행
창에서 마지막으로 변경한 사항을 재호출합니다.
이름 열
"열 이름" 열을 표시하거나 숨깁니다.
통계량 열
트리에 요소에 대한 통계량을 표시하거나 숨깁니다.
쌓기
행을 생성하는 상위 노드 내에서 반복되는 노드에 적용됩니다. 기본적으로 추가 값은 단일 테이블 셀에 쉼표로 구분되어 저장됩니다. 이 옵션이 선택되어 있으면 추가 행에서 반복 값이 쌓입니다.
가져오기 미리보기
선택한 옵션을 기반으로 가져온 데이터의 미리보기를 표시합니다.
소스 보기
소스 XML 문서를 표시합니다.
스크립트 보기
사용자가 선택한 설정의 JSL 스크립트를 표시합니다.
JMP는 XML 또는 JSON 파일의 구조를 감지하여 데이터 테이블에 바로 가져올 수 있습니다. XML 가져오기 마법사에서 데이터 미리보기를 확인하지 않으려면 이 방법을 사용합니다.
1. Windows의 경우:
– 파일 > 열기를 선택합니다.
– 파일 유형을 데이터 파일로 설정합니다.
– 파일을 선택합니다.
– "열기 형식" 옆에서 데이터(최적 추측)를 선택합니다.
2. Apple macOS의 경우:
– 파일 > 열기를 선택하고 파일을 선택합니다.
– 창 왼쪽 하단의 옵션을 클릭합니다.
– 데이터(최적 추측)를 선택합니다.
3. 열기를 클릭합니다.
파일이 데이터 테이블로 열립니다.
결과가 만족스럽지 않은 경우에는 XML 가져오기 마법사를 사용하여 가져오기를 사용자 정의할 수 있습니다. 자세한 내용은 XML과 JSON 데이터 미리보기 및 가져오기에서 확인하십시오.
참고: 스크립트 편집기 창에서 편집 > 데이터로 가져오기를 선택하여 XML 또는 JSON 텍스트를 가져올 수 있습니다. 파일에서 아무것도 선택하지 않은 경우 가져오기는 파일 확장자를 기반으로 합니다. 텍스트를 선택하면 JMP에서 텍스트를 JSON 또는 XML로 파싱하려고 합니다. 그렇지 않으면 텍스트를 CSV 파일로 가져옵니다.