Почему элемент является нулевым в документе XML?
Я создал следующий 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>
Мне нужно использовать g:id, чтобы найти узел элемента, потому что в реальном xml-файле у меня есть сотни элементов. Однако в данный момент я пытаюсь выбрать item node, но это ноль?:
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);
1 ответ
Решение
Используемый вами XPath неверен. Следующее должно работать:
var itemNode = doc.XPathSelectElement("//channel/item/g:id[text()= 6945]", namespaceManager);