子ノードが現在のノード内にあるように検索を制限したいと思います。例えば、私は、次のコードを持っている:C#のノード内で検索するXmlNode.SelectSingleNodeの構文
XmlNodeList myNodes = xmlDoc.DocumentElement.SelectNodes("//Books");
foreach (XmlNode myNode in myNodes)
{
string lastName = "";
XmlNode lastnameNode = myNode.SelectSingleNode("//LastName");
if (lastnameNode != null)
{
lastName = lastnameNode.InnerText;
}
}
を私は氏名要素がforeachの内部現在MYNODEの中から検索することがしたいです。何が起こっているのは、見つかったLastNameは常にmyNodesを持つ最初のノードからのものです。私はLastNameの正確なパスをハードコーディングするのではなく、myNodeの内部がどこにあるかについて柔軟にすることを許可します。 myNodeでSelectSingleNodeメソッドを使用すると、myNodeのxmlコンテンツ内にのみ検索が制限され、親ノードは含まれないと考えられていました。
ザ・にそれを変更することですどこの選択と一致し、現在のノードから文書内のノードを選択しないことを意味し、「」素晴らしい仕事をした。その構文がどこにあるのか知っていますか?私はこの種の情報を探して、 "//"ではなく "。"を見つけました。私は、私が使うことができる他の構文があると思っています。 – user31673
[XPath構文](http://www.w3schools.com/xsl/xpath_syntax.asp) –
@ ibo.ezheが述べたXPath構文へのリンクが更新されました:https://www.w3schools.com/xml/xpath_syntax.asp – PolyTekPatrick