XPath小写()函数

Luk*_*uke 6 c# xml xpath selector

我正在使用XPATH从XML文档中选择某些节点.

用户可以插入该位置的值.它工作正常,但如果使用不同的情况则不起作用.

我已经决定在比较之前将XML值和用户输入更改为小写可能是最好的方法.

我现在有这个作为我的选择器:

NodeIter = nav.Select("/Houses/House/location[contains(../location, '" + location_input + "')]");
Run Code Online (Sandbox Code Playgroud)

我已经尝试将lower-case()功能放在不同的位置,但它并不满意.

如何将其../location比较为小写?

注意:ToLower()在我的c#代码中使用location_input设置为更低.

Fré*_*idi 18

小写()函数只从XPath 2.0中起支撑.如果您的环境支持此版本的标准,您可以编写:

NodeIter = nav.Select("/Houses/House/location[contains(lower-case(.), '"
    + location_input + "')]");
Run Code Online (Sandbox Code Playgroud)

但是,你很可能会遇到XPath 1.0.在这种情况下,您可以滥用translate()函数:

NodeIter = nav.Select("/Houses/House/location[contains(translate(., "
    + "'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '"
    + location_input + "')]");
Run Code Online (Sandbox Code Playgroud)


Dav*_*ght 5

translate(../location, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') 如果您能仅凭AZ逃脱