2009-12-16 53 views
0

我在解析从Web服务返回的xml时遇到问题,因为它实际上只是一个字符串。 Web服务不包含任何提交请求的方法,也不包含处理响应的对象,因此我只是将xml作为字符串获取并尝试将其解析为我创建的对象中的属性。带有字符串或XmlDocument的XPath

我搞砸了XPath,但我无法弄清楚如何在Xpath中使用字符串或XmlDocument对象。我没有一个实际的xml文件,只是一个我用来创建XmlDocument对象的字符串。

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

有关如何使用XPath查询XmlDocument对象的任何想法?

+1

如果你有/可以使用.NET 3.0+使用LINQ到XML和的XDocument代替的XmlDocument - 给你更多的游戏方式。 – Murph 2009-12-16 21:57:39

回答

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 2009-12-17 00:22:41