从类似节点集中提取值

时间:2013-09-27 13:17:22

标签: xml xslt

我有以下类似的节点集,我希望以一种整洁的方式来自每个节点集的值。如果我给XPATH,它将两者作为单个字符串并给出如下203205和USIND。我希望它分开并清晰。如203,205或US,IND。请记住,大小是动态的,我不知道手工制作子串和提取的值。我必须在节点级别进行区分。请建议。

<ResultNode>
    <PIN>202</PIN>
    <COUNTRY>US</COUNTRY>
</ResultNode>
<ResultNode>
    <PIN>203</PIN>
    <COUNTRY>IND</COUNTRY>
</ResultNode>

问候。

1 个答案:

答案 0 :(得分:0)

您没有提到您正在使用的XSLT / XPath版本。

在XPath 2.0中你可以做到

string-join(//PIN, ', ')

产生输出

202, 203

在XSLT 2.0中你可以做到

<xsl:value-of select="//PIN" separator=", " />

在XSLT 1.0中,你可以做到例如

<xsl:for-each select="//PIN">
    <xsl:value-of select="." />
    <xsl:if test="position()!=last()">
        <xsl:text>, </xsl:text>
    </xsl:if>
</xsl:for-each>