<?xml version="1.0" encoding="utf-16"?>
<users>
<user number="0772247157">
<step stepnumber="1">complete</step>
<step stepnumber="2">complete</step>
<step stepnumber="3">complete</step>
</user>
<user number="0772247158">
<step stepnumber="1">complete</step>
<step stepnumber="2">complete</step>
</user>
<user number="0772247159">
<step stepnumber="1">complete</step>
</user>
</users>
などのクエリ
//user[@number='0772243950']
//user[@number=0772243950]/step[last()]
SelectSingleNode メソッドを使用する問題なく動作します。
ただし、次の関数は常に null を返します。XPath Visualizer と完全に連携し、オンラインの XPath エバリュエーターで再確認しました。
public bool checkStepExists(string Number, string StepNumber)
{
string XPathQuery = "//user[@number=" + Number + "]/step[@stepnumber=" + StepNumber + "]";
XmlNode Search = SettingsFile.SelectSingleNode(XPathQuery);
if (Search == null)
return false;
else
return true;
}
この質問をする前に SO を検索しましたが、すべて名前空間の問題を指摘しています。しかし、私が理解できないのは、これが名前空間を持たないローカル XML ファイルであることです。または、常に名前空間とプレフィックスを使用して使用する必要がありますか?