XML 패키지에서 작업을 사용하는 예

XML 패키지를 사용하여 XML 파일에서 Excel 시트로 데이터를 읽고 쓰는 Bot을 생성합니다.

이 자습서에 사용된 샘플 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 사용자 인터페이스에 익숙합니다.

프로시저

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