2012-07-18 68 views

回答

1

函数lower-case()upper-case()仅在XPath 2.0和更高版本中可用。

在XPath 1.0不区分大小写的字符串比较使用

translate($string1, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') 
= 
translate($string2, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') 

其中$string1$string2是表达式指定字符串进行比较。

0

您可能希望有一个看的XPath规范第7.6.2:

http://www.w3.org/TR/xpath-functions/#func-matches

随着fn:matches功能你写一个正则表达式匹配所需目标字符串。

干杯,

+0

我不应该在这里用某种模式匹配xml节点数据。但是,具有用户输入值的节点元素数据。我有一个书籍节点的子子节点。 ' ASP.NET'和用户在文本框* asp.net *中输入一个值。在这里,我需要匹配案件。我的xpath表达式会改变书的标题:''book [title ='“+ txtBookTitle.text +'''”''你可以点亮一下如何做到这一点? – 2012-07-18 06:11:43

+0

函数fn:匹配元素数据,所以我希望'/ book [fn:matches(title,'。* asp.net。*')]'适合你('asp.net'当然是你的查询字符串)。想想看,'fn:contains'也可以工作,尽管我不确定是否区分大小写...... – 2012-07-18 08:00:52

0

尝试lower-case or upper-case字符串函数。这不是完全一样不区分大小写,但希望这将是非常接近:

//YourNode[lower-case(@title)='anders rostgaard bystru'] 

看到this post其他的解决方案。