如何从一个XML元素中选择文本字符串

时间:2011-12-07 12:56:37

标签: xml xslt

我需要从XML元素地址

中选择字符串

这是我的XML文件

<table>
    <row>
        <address>Greenwich Avenue 20, New York</address>
    </row>
</table>

这是我的XSLT文件

<xsl:for-each select="table/row">
<tr>
<td>
<xsl:value-of select="address"/>
</td>
</tr>
</xsl:for-each>

这是我希望的输出

Greenwich Avenue

或者

New York

谢谢

1 个答案:

答案 0 :(得分:1)

此转换显示了如何生成两个字符串中的任何一个

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="address">
     <xsl:value-of select=
      "translate(substring-before(., ','),
                 '01234567890', ''
                 )
      "/>
    =============
     <xsl:value-of select="substring-after(., ',')"/>
 </xsl:template>
</xsl:stylesheet>

应用于提供的XML文档

<table>
    <row>
        <address>Greenwich Avenue 20, New York</address>
    </row>
</table>

通过评估特定的XPath表达式获得所需的两个字符串 - 然后输出

Greenwich Avenue 
=============
New York