У меня проблемы с Xml на моей программе на C#.C# parsing Xml SelectingNode
XML-http://pastebin.com/Ufxaght6 (из песочницы)
Я пытаюсь получить любую информацию о XML, я преуспеваем с помощью рекурсивного цикла на узлах, но я хочу использовать что-то более эффективное.
Я пытаюсь это:
XmlDocument document = new XmlDocument();
document.LoadXml(response);
XmlNode node = document.SelectSingleNode("/getnewsalesresult/request/user");
if (node != null)
Logger.WriteLine(node.InnerText);
else
Logger.WriteLine("fail");
Это дает всегда нуль. Я думаю, проблема связана с «getnewsalesresult» (например, «Подстановочный знак»).
Из XML:
<getnewsalesresult xmlns="http://www.sandbox.priceminister.com/res/schema/getnewsales" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
XSI: SchemaLocation = "http://www.sandbox.priceminister.com/res/schema/getnewsales http://www.sandbox.priceminister.com/res/schema/getnewsales/getnewsales.2014-02-11.xsd">
Любая идея?
Заранее благодарен.
Я подозреваю, что это проблема с пространством имен. Попробуйте http://stackoverflow.com/questions/1145659/ignore-namespaces-in-linq-to-xml – AaronLS
Я не хочу быть ложкой, но я не знаю, как начать для этого :) –
SelectSingleNode принимает xpath, сначала начните с тестирования только первого уровня: 'document.SelectSingleNode ("/getnewsalesresult ");' если это не возвращает ничего попробовать 'document.SelectSingleNode ("/[local-name() = 'getnewsalesresult'] "); 'или' document.SelectSingleNode ("/ * [local-name() = 'getnewsalesresult']"); ' – AaronLS