XSLT多XML标签

时间:2015-10-02 09:07:33

标签: xml xslt

美好的一天。我目前正在学习XSLT 2.0。我想提取来自多个类似标签的数据。喜欢下面的那个

这是我的XSLT:

<xsl:for-each select="/root1/root2">
     <xsl:for-each select="a1 | b1">
           <xsl:value-of select="c1">
           <xsl:value-of select="a1">
           <xsl:value-of select="b1">
     </xsl:for-each>
</xsl:for-each>

输入XML:

<root1>
    <root2>
        <a1>Car1</a1>
        <a1>Car2</a1>
        <a1>Car3</a1> 
        <b1>Red</b1>
        <b1>Blue</b1>
        <b1>Black</b1>
        <c1>Name</c1>
    </root2>
</root>

期望的输出:

  

名称Car1 Red

     

名称Car2 Blue

     

名称Car3 Black

我甚至无法用我的XSLT拉出Name

如何将a1与正确的b1配对?

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

以这种方式试试吗?

XSLT 2.0

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>

<xsl:template match="/root1">
    <xsl:for-each select="root2">
        <xsl:for-each select="a1">
            <xsl:variable name="i" select="position()" />
            <xsl:value-of select="string-join((../c1, ., ../b1[$i], '&#10;'), ' ')"/>
          </xsl:for-each>
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>