大文字と小文字を区別しないXML検索を実行する必要があります。正常に機能するXPath式を作成しましたが、XPath式内で関数を使用するtranslate
と、エラーが発生します。以下は、正常に機能している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値は大文字でも小文字でもかまいません。そのため、データがxmlに存在するかどうかに関係なく、結果を返すxpathを変更する必要があります。ユーザーが援助または援助またはaiDを与えると、結果が返されます。