わかりましたので、XPATH と C# でこの問題に 1 日中悩まされていました。
次の XML ドキュメントがあります。
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0" xmlns:c="http://base.google.com/cns/1.0">
<item id="362">
<title>Family Holiday</title>
<description>a long, wordy description goes here</description>
<g:id xmlns:g="g">FPS</g:id>
<g:latitude xmlns:g="g">42.502260</g:latitude>
<g:longitude xmlns:g="g">1.532850</g:longitude>
</item>
</entry>
次に、次のことを行います。
XmlDocument _xmlDocument = new XmlDocument();
_xmlDocument.Load(xmlfile);
XmlNamespaceManager _nameSpaceManager = new XmlNamespaceManager(_xmlDocument.NameTable);
_nameSpaceManager.AddNamespace("RN", "http://www.w3.org/2005/Atom");
_nameSpaceManager.AddNamespace("g", "http://base.google.com/ns/1.0");
_nameSpaceManager.AddNamespace("c", "http://base.google.com/cns/1.0");
XPathNavigator navigator = _xmlDocument.CreateNavigator();
私の問題はこれにあります:
XmlNode nde = _xmlDocument.SelectSingleNode("/RN:entry/RN:item/g:id", _nameSpaceManager);
null を返します - Id ノードではありません。でも、
XmlNode nde = _xmlDocument.SelectSingleNode("/RN:entry/RN:item/RN:title", _nameSpaceManager);
は、タイトル ノードを返します。
私が間違っていることについてのアイデアは大歓迎です!
乾杯サイモン