2017-05-08 151 views
0

我正尝试使用XSLT将xml文件转换为另一个文件。由于我是一个相当新手,请帮助我创建xslt以将输入xml文件转换为输出xml文件。 在此先感谢。使用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

非常感谢解决方案。它工作!! ..我刚刚修改了输入xml与一个更多的子元素根标签tittle.It将是一个很大的帮助,如果你可以帮助我如何将相同以上解决方案..预先感谢.. :) – rplg

+0

如何通过按键功能使用。请更新。 –

+0

请不要在问题得到解答后以无效的方式更改问题。这让后来寻找类似问题答案的人感到困惑。如果您有补充问题,请打开一个新问题。 –

相关问题