3

複数の名前空間を持つXmlNode(NOT AN )からノードを選択する方法を見つけるために、年齢を探していました。XmlDocument

私が検索したほぼすべての投稿で、 を使用するようにアドバイスされていますがXmlNamespaceManager、には存在しない がXmlNamespaceManager必要です。XmlNameTableXmlNode

でこれを実行しようとしXmlDocumentましたXmlDocumentが、プロパティXmlDocument.NameTableがあるため機能しましたが、XmlNode には存在しません。

NameTable を手動で作成しようとしましたが、 を使用すると同じコードが機能するため機能しませんXmlDocument。これを機能させるには、その NameTable に何かを入力するか、何らかの形でバインドする必要があると思いXmlNodeます。提案してください。

4

2 に答える 2

4

使える

XPathNavigator nav = XmlNode.CreateNavigator();
XmlNamespaceManager man = new XmlNamespaceManager(nav.NameTable);

役立つ場合に備えて、残りを含めます。

man.AddNamespace("app", "http://www.w3.org/2007/app"); //Gotta add each namespace
XPathNodeIterator nodeIter = nav.Select(xPathSearchString, man);

while (nodeIter.MoveNext())
{
    var value = nodeIter.Current.Value;
}

http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.createnavigator.aspx

于 2013-04-11T14:50:54.603 に答える