0

次のxmlファイルを作成しました。

<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
  <channel>
    <item>
      <g:id>6945</g:id>
      <g:price>1222.00</g:price>
    </item>
  </channel>
</rss>

実際の xmlfile には何百ものアイテムがあるため、g:id を使用してアイテム ノードを見つける必要があります。しかし、現時点では itemnode を選択しようとしていますが、これは null ですか?:

XNamespace g = "http://base.google.com/ns/1.0";
var doc = XDocument.Load(Server.MapPath("~/xmlfile1.xml"));
var reader = doc.CreateReader();
var namespaceManager = new XmlNamespaceManager(reader.NameTable);
namespaceManager.AddNamespace("g", g.NamespaceName);
var itemNode = doc.XPathSelectElement("/Channel/item/g:id[text()= 6945]", namespaceManager);
4

1 に答える 1

0

使用している XPath が正しくありません。以下が機能するはずです:

var itemNode = doc.XPathSelectElement("//channel/item/g:id[text()= 6945]", namespaceManager);
于 2013-10-23T01:04:11.150 に答える