我想将重复结构中的xml节点按位置复制到另一个重复结构...意味着第一个节点转到第一个节点,依此类推......
非常感谢帮助!..
答案 0 :(得分:0)
试试这个:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="error" match="XmlerrorItmOut/item" use="count(preceding-sibling::item) + 1"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Xmlitem/item">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
<xsl:copy-of select="key('error', position())/YyextError"/>
<xsl:copy-of select="key('error', position())/YyerrorDesc"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
首先我们创建密钥。我们使用前面的兄弟节点计数而不是位置。虽然如果你有数以千计的物品可能会很慢,但它确实有效。
identity transform“按原样”复制每个节点。
第二个模板匹配任何Xmlitem/item
元素,复制内容并按键添加错误元素。