2014-10-11 32 views
1

例如只选择大写文字,这个XML,旺旺的XPath

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

我所要的输出是

HIDE SEEK 

这可能吗?

+0

什么的XPath的版本样式表你使用?关于不是字母的字符,例如数字,标点符号等? – 2014-10-11 20:06:02

+0

使用Xpath 1.0。他们只是字母/数字,没有特别的字符。 @MathiasMüller – Hideandseek 2014-10-11 20:12:20

+1

好的,我编辑了您的问题以包含此信息。而且,既然我正在写信,请注意你以前的一些问题 - 其中一些问题有你应该接受的答案。 – 2014-10-11 20:15:16

回答

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