Xml XSLT从索引属性为1/2的两个标记复制到一个标记中
我有这样一个XML:Xml XSLT从索引属性为1/2的两个标记复制到一个标记中,xml,xslt,Xml,Xslt,我有这样一个XML: <tns:name2List> <tns:name2 index="1">Name</tns:name2> <tns:name2 index="2">A</tns:name2> <tns:name2 index="1">Surname</tns:name2> <tns:name2 index="2">B<
<tns:name2List>
<tns:name2 index="1">Name</tns:name2>
<tns:name2 index="2">A</tns:name2>
<tns:name2 index="1">Surname</tns:name2>
<tns:name2 index="2">B</tns:name2>
</tns:name2List>
<name2List>
<name>Name A</name>
<name>Name B</name>
</name2List>
我需要得到这样的东西:
<tns:name2List>
<tns:name2 index="1">Name</tns:name2>
<tns:name2 index="2">A</tns:name2>
<tns:name2 index="1">Surname</tns:name2>
<tns:name2 index="2">B</tns:name2>
</tns:name2List>
<name2List>
<name>Name A</name>
<name>Name B</name>
</name2List>
您知道如何使用XSLT1.0实现这一点吗?谢谢
我试过这样的方法:
<xsl:template match="/tns:name2List/tns:name2">
<name>
<xsl:for-each select="/tns:name2List/tns:name2">
<xsl:value-of select="."/><xsl:text> </xsl:text>
</xsl:for-each>
</name>
</xsl:template>
但我得到了一些:
<name>
<name>Name A Name B </name>
<name>Name A Name B </name>
<name>Name A Name B </name>
<name>Name A Name B </name>
</name>
如何更改它以获得所需的输出?在给定的示例中,您可以简单地执行以下操作:
<xsl:template match="/tns:name2List">
<name2List>
<xsl:for-each select="tns:name2[@index=1]">
<name>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="following-sibling::tns:name2"/>
</name>
</xsl:for-each>
</name2List>
</xsl:template>
这个例子模棱两可。请解释应该在这里应用的确切逻辑。好吧,我需要将两个标记与后跟索引1和2连接成一个标记。我尝试了一些方法,但是我得到了4个标签,我只需要这个例子中的2个