2009-12-16 3 views
0

У меня возникли проблемы с анализом xml, возвращаемого с веб-службы, потому что это действительно просто строка. Веб-служба не содержит какого-либо метода для отправки запроса или объекта для обработки ответа, поэтому я просто получаю xml в виде строки и пытаюсь разобрать его на свойства объекта, который я создал.XPath со строкой или XmlDocument

Я столкнулся с XPath, но я не могу понять, как использовать строку или объект XmlDocument с помощью Xpath. У меня нет фактического xml-файла, просто строка, которую я использовал для создания объекта XmlDocument.

private void SetProperties(string _xml) 
    { 
     XmlDocument _doc = new XmlDocument(); 
     _doc.LoadXml(_xml); 
    } 

Любые идеи относительно того, как я могу запросить объект XmlDocument с помощью XPath?

+1

Если у вас есть/могут использовать .NET 3.0+ пойти с Linq для XML и XDocument вместо XmlDocument - дать вам больше возможностей для игры. – Murph

ответ

1

SelectNodes или SelectSingleNode - хорошее место для начала. На этих страницах приведены примеры выбора/запроса списков узлов из XmlDocument.

0

Вы пробовали призывать различные методы к объекту XmlDocument? Например, метод SelectSingleNode принимает строку xpath и возвращает xmlNode.

Кроме того, проверьте этот сайт для получения дополнительной информации: http://www.w3schools.com/

0

Вы можете создать новый объект XPathExpression который затем сделать отборное против XDoc с ним. Добавление на код XDocument нагрузки вы начали:

XmlDocument _doc = new XmlDocument(); 
_doc.LoadXml(_xml); 

XPathNavigator navigator = _doc.CreateNavigator(); 
XPathExpression expression = navigator.Compile("/foo/bar"); 
XPathNodeIterator iterator = navigator.Select(expression); 

while (iterator.HasNext()) { 
    //Do Something With iterator.Current.Value; 
} 
+0

Теперь я получаю эту ошибку, когда пытаюсь создать экземпляр XPathNodeIterator: «Требуется менеджер пространств имен или XsltContext. Этот запрос имеет префикс, переменную или определяемую пользователем функцию». Я тоже не ищу никакой помощи в Интернете. Какие-либо предложения? – Barryman9000