2017-05-08 23 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

解決してくれてありがとうございました!!私はちょうどルートタグtittle.Itのためのもう1つのサブ要素で入力xmlを変更しました。私に大きな助けになるでしょう。先にお礼します:) – rplg

+0

キー機能を使用する方法。更新してください。 –

+0

回答が無効になるように回答された後は、質問を変更しないでください。それは後でここに来て、同様の質問に対する答えを探している人々のために物事を徹底的に混乱させます。補足質問がある場合は、新しい質問を開きます。 –

関連する問題