每个(组?)的XSLT,有两个名为Code和Value的元素

时间:2017-08-01 13:32:55

标签: xml xslt xfdf

我需要将文件xml传输到xfdf。我有两个元素类型代码和值的组。代码定义字段名称,值是字段值。 XML源代码如下:

 <urn:identifications>
  <urn:identificationCode>dateOfBirth</urn:identificationCode>
  <urn:identificationValue>25021965</urn:identificationValue>
  <urn:identificationCode>ičdph</urn:identificationCode>     <!-- IC DPH -->
  <urn:identificationValue>1234567890</urn:identificationValue>
  <urn:identificationCode>ičo_sk</urn:identificationCode>      <!-- ICO (SK) -->
  <urn:identificationValue>0987654333</urn:identificationValue>
  <urn:identificationCode>ic</urn:identificationCode>      <!-- ICO (CZ) -->
  <urn:identificationValue>0987654321</urn:identificationValue>
  ...
</urn:identifications>

我需要XSLT到XFDF这样的东西。

<identifications>
 <field name="dateOfBirth">
   <value>25021965</value>
 </field>
 <field name="ičdph">
   <value>1234567890</value>
 </field>
 <field name="ičo_sk">
   <value>0987654333</value>
 </field>
 <field name="ic">
   <value>0987654321</value>
 </field>
  ...
</identifications>

我需要使用什么?怎么样?换各个群组?还是som套装?非常感谢你。

1 个答案:

答案 0 :(得分:1)

如果它们总是以有序对的形式出现,如您的示例所示,那么您可以简单地执行:

<xsl:template match="urn:identifications">
    <identifications>
        <xsl:for-each select="urn:identificationCode">
            <field name="{.}">
                <value>
                    <xsl:value-of select="following-sibling::urn:identificationValue[1]"/>
                </value>
            </field>
        </xsl:for-each>
    </identifications>
</xsl:template>