想要在XPath中仅选择大写文本

时间:2014-10-11 19:48:32

标签: xml xpath xpath-1.0

例如,对于此XML,

<h1 item="name">HIDE and SEEK</h1>

我希望输出为

HIDE SEEK

有可能吗?

1 个答案:

答案 0 :(得分:3)

由于我们不知道您使用的是哪个版本,因此以下XPath表达式对XPath 1.0和2.0都有效

normalize-space(translate(//h1,'abcdefghijklmnopqrstuvwxyz',''))

在XPath 2.0中,解决方案可能会稍微优雅一些​​。

请注意,这只会影响小写字母,但不会影响数字,标点符号或任何其他字符。几个空格被标准化为单个空格。

用于说明的XSLT 1.0样式表

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="text"/>

    <xsl:template match="/">
      <xsl:value-of select="normalize-space(translate(//h1,'abcdefghijklmnopqrstuvwxyz',''))"/>
    </xsl:template>

</xsl:transform>

XML输入

<h1 item="name">HIDE and SEEK</h1>

<强>输出

HIDE SEEK