Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XSLT从索引属性为1/2的两个标记复制到一个标记中_Xml_Xslt - Fatal编程技术网

Xml XSLT从索引属性为1/2的两个标记复制到一个标记中

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<

我有这样一个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: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个