我必须进行不区分大小写的 XML 搜索。我编写了运行良好translate
的 XPath 表达式,但是当我在 XPath 表达式中使用该函数时出现错误。以下是运行良好的 XPath 表达式:
string upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string lower = "abcdefghijklmnopqrstuvwxyz";
string xpath = "/data/item[AID/@iskey='true' and AID/text() = 'fep'][not(*[@iskey][local-name() != 'AID' ])]";
string xpath1 = "/data/item[translate('Aid','" + upper + "','" + lower + "')]";
这是我的 XML:
<?xml version="1.0" encoding="utf-8"?>
<data>
<item>
<AID iskey="true">fep</AID>
<account>MS</account>
</item>
</data>
我想将translate
函数放在第一个 XPath 表达式中,如下所示:
string xpath = "/data/item[translate('AID','" + upper + "','" + lower + "')/@iskey='true' and translate('AID','" + upper + "','" + lower + "')/text() = 'fep'][not(*[@iskey][local-name() != translate('aid','" + upper + "','" + lower + "') ])]";
当我这样做时,我收到以下错误:
表达式必须计算为节点集。
这个 xpath 对我来说很好用。
string col="AID";
string xpath = "/data/item[col/@iskey='true' and col/text() = 'fep'][not(*[@iskey][local-name() != 'col' ])]";
现在我的要求是 col 值在任何情况下都可以是大写或小写,所以我想要更改我的 xpath,无论 xml 中存在哪种情况下的数据,它都会返回结果。如果用户提供援助或援助或援助,它会返回结果给我。