XPATH:检查xml节点是否包含特定字符或字符串

时间:2011-04-12 12:58:56

标签: c# xml string xpath contains

想象一下这个XML文件(抱歉生病的例子!!)

<DOC>
<Test>
    <Name>1 vs 100 Pre pre History</Name>
    <Type>Dinasors</Type>
</Test>

<Test>
    <Name> 1 vs 100 Post moderns</Name>
    <Type>Aliens</Type>
</Test>
</Doc>

想法是返回Type值,通过检查Name节点是否包含特定字符或字符串。例如,我想要一个XPath查询,如:

/Doc//Test[contains "Pre" and "History" and 1]/Type

检查Test是否包含“Pre”和“History”以及数字1,xpath查询是什么? Alo我喜欢这个查询而不是CASE SENSITIVE。

感谢。

2 个答案:

答案 0 :(得分:2)

我认为这应该有用(尚未测试过):

/Doc//Test[contains(Name,'Pre') and contains(Name,'History') and contains(Name,1)]/Type

然而,这是区分大小写的。如果您希望它不区分大小写,那么您可能需要查看this questionthis question:您必须使用translateName转换为小写(或大写)然后匹配。

答案 1 :(得分:0)

它适用于:

/Doc//Test[contains(Name,'Pre')][contains(Name,'History')][contains(Name,1)]/Type;