美好的一天。我目前正在学习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配对?
有什么建议吗?
答案 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], ' '), ' ')"/>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>