从给定的 html :
<span class="flag_16 left_16 armenia_16_left"> First League</span>
我如何才能仅获得(亚美尼亚)字符串或至少获得(亚美尼亚_16_left)。
提前致谢。
从给定的 html :
<span class="flag_16 left_16 armenia_16_left"> First League</span>
我如何才能仅获得(亚美尼亚)字符串或至少获得(亚美尼亚_16_left)。
提前致谢。
使用这个 XPath 1.0 表达式:
substring-before(substring-after(substring-after(/span /@class, ' '), ' '), '_')
在 XPath 2.0 中,可以简单地使用:
tokenize(tokenize(/span /@class, ' ')[last()], '_')[1]
基于 XSLT 的验证:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
"<xsl:value-of select=
"substring-before(substring-after(substring-after(/span /@class, ' '), ' '), '_')
"/>"
</xsl:template>
</xsl:stylesheet>
当此转换应用于提供的 XML 文档时:
<span class="flag_16 left_16 armenia_16_left"> First League</span>
计算 Xpath 表达式并将结果复制到输出:
"armenia"
当此 XSLT 2.0 转换应用于同一个 XML 文档时(上图):
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
"<xsl:sequence select=
"tokenize(tokenize(/span /@class, ' ')[last()], '_')[1]"/>"
</xsl:template>
</xsl:stylesheet>
再次产生相同的正确结果:
"armenia"