例如,对于此XML,

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


我希望输出是

HIDE SEEK


可能吗?

最佳答案

由于我们不知道使用哪个版本,因此以下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

关于xml - 只想在XPath中选择大写文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26318634/

10-10 09:10
查看更多