XML 가져오기 마법사는 두 가지 유형의 내포된 텍스트 데이터, 즉 XML 파일과 JSON 파일을 가져옵니다. 두 종류의 파일은 모두 계층 관계를 나타내기 위해 내포될 수 있는 정형화된 텍스트를 포함합니다. 이 마법사를 사용하면 데이터 테이블을 구성할 행을 결정하는 값 및 요소가 포함된 계층 요소를 쉽게 선택할 수 있습니다.
내포된 텍스트 파일의 경우 해당 문서가 짧은 스토리들로 구성된 책이라고 생각하면 이해하기 쉽습니다. 짧은 스토리 중 일부는 장으로 구성될 수 있고 일부는 단락으로만 구성될 수 있습니다. 장은 단락으로 구성됩니다. 단락은 문장으로 구성됩니다. 다음은 이러한 책 구조를 보여 주는 전체 트리의 예입니다.
<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"가 포함된 종류 열이 필요할 수 있습니다. "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" 유형에 "chaphter" 이름이 지정되지 않은 경우 "american"과 "swiss" 다음에는 결측값이 나타납니다.
– "Use Once" 옵션은 해당 값을 한 번만 사용함을 의미하므로, 데이터를 다시 제공하지 않으면 두 번째, 세 번째 및 네 번째 행은 결측값이 됩니다.
– "Fill Forever" 옵션은 해당 값을 계속 적용하되 새 값이 발견되면 새 값으로 바꿈을 의미합니다.
– 이 예에서는 "+book/story" 옵션을 선택합니다. 이 옵션은 여는 <book>/<story> 요소가 발견되면 <book>/<story> 노드가 다시 시작될 때까지 JMP가 해당 셀을 채움을 나타냅니다. -<element> 옵션은 해당 요소의 닫는 태그, 즉 노드가 끝나는 위치를 나타냅니다.
4. "형식" 열에서 "price" 옆의 Best를 클릭하고, 고정 소수점을 선택하고, 소수 자릿수로 "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. macOS의 경우:
– 파일 > 열기를 선택하고 파일을 선택합니다.
– 창의 왼쪽 하단에서 옵션을 클릭합니다.
– 데이터(최적 추측)를 선택합니다.
3. 열기를 클릭합니다.
파일이 데이터 테이블로 열립니다.
결과가 만족스럽지 않은 경우에는 XML 가져오기 마법사를 사용하여 가져오기를 사용자 정의할 수 있습니다. 자세한 내용은 XML 및 JSON 데이터 미리보기 및 가져오기에서 확인하십시오.
참고: 스크립트 편집기 창에서 편집 > 데이터로 가져오기를 선택하여 XML 또는 JSON 텍스트를 가져올 수 있습니다. 파일에서 아무것도 선택하지 않은 경우 가져오기는 파일 확장자를 기반으로 합니다. 텍스트를 선택하면 JMP는 텍스트를 JSON 또는 XML로 파싱하려고 시도하고 그렇지 않으면 텍스트를 CSV 파일로 가져옵니다.