XPath:如何提取多行属性值的第一行?

时间:2012-03-14 22:22:53

标签: xpath

例如:

<doc>
    <elem attr="firstLine &x0a; secondLine"/>
    <elem attr="1stLine"/>
</doc>

当有很多

时,需要获得第一行

从上面的例子中,我们想得到{'firstLine','1stLine'}

提前致谢

2 个答案:

答案 0 :(得分:1)

使用

substring-before(/*/elem[1]/@attr, '&#x0A;')

以下是基于XSLT的验证

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/">
     <xsl:copy-of select="substring-before(/*/elem[1]/@attr, '&#x0A;')"/>
 </xsl:template>
</xsl:stylesheet>

将此转换应用于提供的XML文档(更正为格式正确!!!):

<doc>
    <elem attr="firstLine &#x0a; secondLine"/>
    <elem attr="1stLine"/>
</doc>

它评估XPath表达式并输出此评估的结果

firstLine 

答案 1 :(得分:0)

如果您使用的是XPath 2.0,则可以使用tokenize()