XML 패키지에서 작업을 사용하는 예
- 최종 업데이트2023/05/22
XML 패키지에서 작업을 사용하는 예
XML 패키지를 사용하여 XML 파일에서 Excel 시트로 데이터를 읽고 쓰는 봇을 생성합니다.
이 자습서에 사용된 샘플 XML의 구조는 다음과 같습니다.
<movies>
<movie genre="" year="">
<name></name>
<description></description>
<director></director>
<writers>
<writer type=""></writer>
<writer type=""></writer>
</writers>
<rating>R</rating>
</movie>
</movies>
시작하기 전에 샘플 XML 파일을 다운로드하십시오.
이 자습서의 목적은 다음 작업을 보여주는 것입니다.
- XPath 식을 사용하여 특정 값을 가진 노드 세트를 가져오고 노드 세트의 항목을 반복합니다(예: 이 자습서에서 특정 등급이 있는 영화).
- XPath 함수를 사용하여 하위 노드 집합을 반복합니다.
- 변수를 연결하여 문자열을 만듭니다.
- Excel 시트에 데이터를 씁니다.
전제 조건
다음 사항을 확인하십시오.
- Bot을 만드는 방법을 알고 있습니다.
- Control Room 사용자 인터페이스에 익숙합니다.
프로시저
-
봇을 만들고 XMLDataReader로 이름을 지정합니다.
-
Excel 시트를 여는 데 필요한 모든 업무를 그룹화하는 단계를 추가합니다.
-
Bot 편집기에서 시작 흐름 후에 단계 > 단계 작업을 추가합니다.
주: 작업을 추가하려면 작업 창에서 작업을 검색하고 Bot 편집기의 봇 흐름으로 드래그합니다.
- 제목에 Open an Excel Sheet를 입력하고 작업을 저장합니다.
-
Bot 편집기에서 시작 흐름 후에 단계 > 단계 작업을 추가합니다.
-
Excel 시트를 만들고 열려면 Excel 고급 > 통합 문서 생성을 사용합니다.
- 단계 작업에서 Excel 고급 > 통합 문서 생성 작업을 추가합니다.
- 파일 경로에 C:\movies\movies.xlsx를 입력하고 작업을 저장합니다. 지정된 경로에 movies 폴더가 없으면 해당 경로에 movies 폴더를 생성합니다.
-
Excel 시트의 첫 번째 셀을 선택하려면 Excel 고급 > 셀로 이동 작업을 사용합니다.
- Excel 고급 > 셀로 이동 작업을 Excel 고급: 통합 문서 생성 작업 뒤에 추가합니다.
- 아직 선택되지 않은 경우 특정 셀을 클릭하고 A1을 입력합니다.
- 작업을 저장합니다.
-
XML 데이터 검색을 위한 모든 업무를 그룹화하는 또 다른 단계를 만듭니다.
- 첫 번째 단계 작업 후에 단계 > 단계 작업을 추가합니다.
- 제목에 Get XML Data를 입력하고 작업을 저장합니다.
-
XML 세션을 시작합니다.
- XML 데이터 가져오기 단계에서 XML > 세션 시작 작업을 추가합니다.
- 파일에서 데스크톱을 선택하고 다운로드한 샘플 XML 파일을 찾아 선택합니다.
- 변경 사항을 저장합니다.
-
R등급인 모든 영화 노드를 가져오려면 여러 노드 가져오기 작업을 사용합니다.
- 세션 시작 작업 후에 XML > 여러 노드 가져오기를 추가합니다.
-
XPath 식에 //movie[rating/text()='R']을 입력하고 작업을 저장합니다.
선택한 노드 세트는 시스템 변수에 저장되며 이제 XML 데이터 세트의 각 노드 대상 반복자에 사용할 수 있습니다.
- 작업이 텍스트 노드뿐만 아니라 전체 노드 세트를 검색하도록 하려면 Xpath 식을 클릭합니다.
-
루프 작업을 사용하여 여러 노드 가져오기 작업이 검색하는 선택된 노드 세트를 반복합니다.
- 루프 > 루프를 XML: 여러 노드 가져오기 작업 뒤에 추가합니다.
- 반복자에서 XML > XML 데이터 세트의 각 노드 대상을 반복자로 선택합니다.
- 현재 행을 이 변수에 지정에서 (x)를 클릭하고 기본 이름(예: XMLNode)을 사용하여 변수를 생성합니다. 이제 노드 세트의 각 항목은 변수를 통해 사용할 수 있습니다.
- 작업을 저장합니다.
-
반복 노드에서 영화 이름을 가져오려면 단일 노드 가져오기 작업을 사용합니다.
- XML > 단일 노드 가져오기 작업을 루프: 루프 작업 내에 추가합니다.
- XPath 식에 $XMLNode$/name을 입력합니다.
- 출력을 변수에 할당에서 변수를 만들고 이름을 sMovieName로 지정합니다.
- 작업을 저장합니다.
-
XMLNode 변수에서 영화 이름을 쓰려면 셀 설정 작업을 사용합니다.
- 단일 노드 가져오기 작업 뒤에 Excel 고급 > 셀 설정 작업을 추가합니다.
- 활성 셀을 클릭하고 셀 값에 $sMovieName$를 입력하고 작업을 저장합니다.
-
Excel 시트 내에서 새 셀을 선택하려면 셀로 이동 작업을 사용합니다.
- 셀로 이동 작업을 셀 설정 작업 이후 Excel 고급: 셀 설정 작업 뒤에 추가합니다.
- 활성 셀을 클릭하고 오른쪽에 한 셀 삽입을 선택한 다음 작업을 저장합니다.
-
반복 노드에서 감독 이름을 가져오려면 단일 노드 가져오기 작업을 사용합니다.
- XML > 단일 노드 가져오기 작업을 Excel 고급: 셀로 이동 작업 뒤에 추가합니다.
- XPath 식에 $XMLNode$/director을 입력합니다.
- 출력을 변수에 할당에서 다음 이름으로 변수를 만듭니다. sDirector
- 작업을 저장합니다.
-
XMLNode 변수에서 감독 이름을 쓰려면 셀 설정 작업을 사용합니다.
- Excel 고급 > 셀 설정 작업을 XML: 단일 노드 가져오기 작업 뒤에 추가합니다.
- 활성 셀을 클릭하고 셀 값에 $sDirector$를 입력하고 작업을 저장합니다.
-
Excel 시트 내에서 새 셀을 선택하려면 셀로 이동 작업을 사용합니다.
- 셀로 이동 작업을 Excel 고급: 셀 설정 작업 뒤에 추가합니다.
- 활성 셀을 클릭하고 오른쪽에 한 셀 삽입을 선택한 다음 작업을 저장합니다.
-
왜냐하면
<작성자>
노드는 여러 개의<작성자>
노드를 포함할 수 있기 때문입니다. 각 작성자 이름을 가져오고, 이름을 연결하고, 값을 여러 셀에 쓰는 대신 단일 셀에 이름을 씁니다. 이렇게 하려면 현재 루프 작업 내에서 루프 작업을 추가합니다.-
해당
<작성자>
노드 내에서<작성자>
수를 가져오려면 XML > XPath 함수 실행을 Excel 고급: 셀 설정 작업 뒤에 추가합니다. XPath 식에 count($XMLNode$/writers/writer)를 입력합니다. 출력을 변수에 할당에 이름이 sWriterCount인 변수를 만듭니다.해당<작성자>
노드 수를 사용하여 모든<작성자>
노드를 반복하게 됩니다. -
루프 > 루프 작업을 XML: XPath 함수 실행 작업 뒤에 추가합니다.
중요사항: 두 번째 루프 작업은 반드시 메인 루프 작업 내에 추가해야 합니다.
- 반복자에서 n회를 반복자로 선택합니다.
-
횟수에서 다음을 입력합니다. $sWriterCount.String:toNumber$
주: sWriterCount는 문자열 값을 포함합니다. 문자열을 숫자로 변환하려면lt;variable name>.String:toNumber$ 형식을 사용할 수 있습니다(예: $sWriterCount.String:toNumber$).
- 현재 값을 변수에 할당(선택 사항)에 이름이 Counter인 변수를 만듭니다.
- 작업을 저장합니다.
-
해당
-
모든 작성자 노드의 값을 연결하려면 문자열 변수를 만듭니다.
-
변수 창에서 더하기 아이콘을 클릭합니다.
그러면 변수 생성 창이 열립니다.
- 유형에서 문자열을 선택합니다.
- 이름에 sWriters를 입력합니다.
- 생성을 클릭합니다.
-
변수 창에서 더하기 아이콘을 클릭합니다.
-
반복
<작성자>
노드에서 값을 가져오려면, 단일 노드 가져오기 작업을 사용합니다.- 두 번째 루프 작업 내에서 XML > 단일 노드 가져오기 작업을 추가합니다.
-
XPath 식에 $XMLNode$/writers/writer[$Counter.Number:toString$]을 입력합니다.
Counter 변수를 사용하여 특정 인덱스의 노드에 액세스할 수 있습니다. Counter 변수에는 숫자 값이 포함되어 있기 때문에 .Number:toString$ 표현식이 Counter 변수에 추가되어 문자열로 변환됩니다.
- 출력을 변수에 할당에서 변수를 만들고 이름을 sWriter로 지정합니다.
- 작업을 저장합니다.
-
작성자 노드에서 값을 할당하려면 문자열 > 할당 작업을 사용합니다.
- 문자열 > 할당 작업을 두 번째 루프 내 XML: 단일 노드 가져오기 뒤에 추가합니다.
- 소스 문자열 변수/값 선택(선택사항)에 $sWriters$, $sWriter$를 입력합니다.
- 대상 문자열 변수 선택에서 sWriters를 선택합니다.
- 작업을 저장합니다.
내부 루프가 완료된 후 sWriters 변수에는 모든 작성자 이름이 포함됩니다. -
작성자 이름을 새 셀에 쓰려면 메인 루프 내에 Excel 고급 > 셀 설정 작업을 사용합니다.
- 첫 번째 루프 작업 내에서 내부 루프 후에 Excel 고급 > 셀 설정 작업을 추가합니다.
- 활성 셀을 클릭합니다.
- 셀 값에 $sWriters$를 입력합니다.
- 작업을 저장합니다.
한<영화>
노드에서 가져온 데이터는 행에 기록됩니다. 다음<영화>
노드에서 데이터를 쓰려면 Excel 시트의 다음 행을 선택해야 합니다. -
커서를 다음 행으로 이동하려면 Excel 고급 > 셀로 이동 작업을 사용합니다.
- 셀 설정 작업 후에 셀로 이동 작업을 추가합니다.
- 활성 셀을 클릭하고 행의 시작을 선택한 다음 작업을 저장합니다.
- 다시 셀로 이동 작업을 추가합니다. 활성 셀을 클릭하고 아래의 셀을 선택한 다음 작업을 저장합니다.
-
검색된
<영화>
노드 세트의 다음 노드가 반복되기 전에 sWriters 변수를 재설정해야 합니다. sWriters 변수를 재설정하려면 다음 단계를 수행합니다.- 문자열 > 할당 작업을 메인 루프 내의 Excel 고급: 셀로 이동 뒤에 추가합니다.
- 소스 문자열 변수/값(선택 사항)을 공백으로 둡니다.
- 대상 문자열 변수 선택에서 sWriters를 선택합니다.
-
작업을 저장합니다.
-
새 단계를 생성합니다.
- 두 번째 단계 후에 단계 > 단계 작업을 추가합니다.
- 제목에 Close the file을 입력합니다.
-
Excel 시트를 닫으려면 Excel 고급 닫기 작업을 사용합니다.
- 파일 닫기 단계 내에서 Excel 고급 > 닫기를 추가합니다.
- 변경 사항을 저장합니다.
-
봇을 실행합니다.