2017-05-08 14 views
0

XSLT를 사용하여 XML 파일을 다른 것으로 변환하려고합니다. 나는이 초보자로서 xslt 파일을 출력 XML 파일로 변환하기 위해 xslt 파일을 생성하도록 도와주세요. 미리 감사드립니다. XSLT를 사용하여 XML 파일을 다른 XML 파일로 변환

입력 XML

<?xml version="1.0" encoding="UTF-8"?> 
<title> 
    <subtitle1> 
     <OrganizationDetails> 
      <OrgName>qwe</EmpNumber> 
      <OrgAddress>asdfg 123</EmpName> 
     </OrginzationDetails > 
    </subtitle1> 
    <subtitle2> 
     <ResourceDetails> 
      <EmpNumber>1</EmpNumber> 
      <EmpName>xyz</EmpName> 
     </ResourceDetails> 
     <ResourceDetails> 
      <EmpNumber>2</EmpNumber> 
      <EmpName>abc</EmpName> 
     </ResourceDetails> 
     <ResourceDepartment> 
      <EmpNumber>1</EmpNumber> 
      <DepartmentNo>IT</DepartmentNo> 
     </ResourceDepartment> 
     <ResourceDepartment> 
      <EmpNumber>2</EmpNumber> 
      <DepartmentNo>SALES</DepartmentNo> 
     </ResourceDepartment> 
    </subtitle2> 
</title> 

예상 출력 XML

<?xml version="1.0" encoding="UTF-8"?> 
<title> 
    <subtitle1> 
     <OrginzationDetails> 
      <OrgName>qwe</EmpNumber> 
      <OrgAddress>asdfg 123</EmpName> 
     </OrginzationDetails > 
    </subtitle1> 
    <subtitle2> 
     <ResourceDetails> 
      <EmpNumber>1</EmpNumber> 
      <EmpName>xyz</EmpName> 
     </ResourceDetails> 

     <ResourceDepartment> 
      <EmpNumber>1</EmpNumber> 
      <DepartmentNo>IT</DepartmentNo> 
     </ResourceDepartment> 
    </subtitle2> 
</title> 

<title> 
    <subtitle1> 
     <OrginzationDetails> 
      <OrgName>qwe</EmpNumber> 
      <OrgAddress>asdfg 123</EmpName> 
     </OrginzationDetails > 
    </subtitle1> 

    <subtitle2> 
     <ResourceDetails> 
      <EmpNumber>2</EmpNumber> 
      <EmpName>abc</EmpName> 
     </ResourceDetails> 
     <ResourceDepartment> 
      <EmpNumber>2</EmpNumber> 
      <DepartmentNo>SALES</DepartmentNo> 
     </ResourceDepartment> 
    </subtitle2> 
</title> 
+5

입니다 ] (https://www.w3.org/TR/xslt/# 키)를 사용하여 입력의 상호 참조를 해결하십시오. –

답변

1

솔루션의 본질은 당신은 [키를 ​​사용하기를 원할 것입니다, 일반적으로

<xsl:for-each-group select="/title/subtitle/*" group-by="EmpNumber"> 
    <title> 
    <subtitle> 
     <xsl:copy-of select="current-group()"/> 
    ... 
+0

해답을 많이 주셔서 감사합니다. 그것은 작동합니다! ... 나는 방금 루트 태그 tittle.It에 대한 하나 이상의 하위 요소로 입력 된 XML을 수정했습니다. 당신이 나에게도 같은 것을 통합하는 방법을 도울 수 있다면 큰 도움이 될 것입니다. 사전에 고맙습니다. :) – rplg

+0

키 기능을 통해 사용하는 방법. 업데이트하십시오. –

+0

답변을 무효로하는 등의 방법으로 질문을 변경하지 마십시오. 그것은 나중에 유사한 질문에 대한 답을 찾기 위해 여기에 오는 사람들에게 일을 철저하게 혼란스럽게 만듭니다. 추가 질문이있는 경우 새 질문을 엽니 다. –