C#XmlDocumentSelectNodes我有一个xml文档,有一个根元素,两个子元素,'diagnostic'和'results'。然后,“results”元素包含任意数量的名称为“result”的元素。当它被加载到XmlDocument中时,很容易浏览结构并查看它是如何完成的。我可以编写一个递归函数来挑选出所有“结果”元素。XmlDocument.SelectNodes("//results")找到一个节点没问题。但是,*XmlDocument.SelectNodes("//results/result")什么也找不到。*XmlDocument.SelectNodes("//result")什么也没找到。我正在与一位同事交谈,他对在XmlDocument.SelectNodes中使用Xpath感到难过。还有其他人遇到过这种问题吗?有解决办法吗?XML文件:真实49472579Kakungulu杯冠军SCVilla今天下午在达累斯萨拉姆的国家体育场迎战坦桑尼亚的SimbaSC。“我们经历了一段非常疲惫的旅程。路况很差,路障也很多。然而,我们终于到达了,但男孩们太累了,”加藤说。http://lrd.yahooapis.com/_ylc=X3oDMTQ4cXAxcnRoBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA21VVGlta2dlQXUzeEYuM0xGQkQzR1pUU1FIS0dORXA4cUk4QUJJX1U-/SIG=12vhpskdd/**http%3A//www.monitor.co.ug/artman/publish/sports/SC_Villa_face_Simba_in_Tanzania_89289.shtml2009/08/07englishThe监控http://www.monitor.co.ug/20:22:32SCVillafaceSimbainTanzaniahttp://www.monitor.co.ug/artman/publish/sports/SC_Villa_face_Simba_in_Tanzania_89289.shtmlXPATHdoc.SelectNodes("//result")不会产生任何命中。Rob和Marc的回答可能朝着正确的方向发展——XmlDocument+命名空间+XPath可能有点麻烦。如果您能够使用.NET3.5,我推荐LINQtoXML。这将使它变得非常简单:XDocumentdoc=XDocument.Load("foo.xml");XNamespacens="bar";varresults=doc.Descendants(ns+"result");foreach(varresultinresults){...}根据我的经验,LINQtoXML基本上在几乎所有方面都是一个出色的API:)(我确信它具有一些功能,但如果您可以访问.NET3.5,至少值得一试。)听起来名称空间是问题所在;您通常需要为此获得XmlNamespaceManager的帮助并在查询中使用别名,即doc.SelectNodes("//x:results/x:result",nsmgr);(其中x在nsmgr中定义为给定命名空间的别名)以上就是C#学习教程:C#XmlDocumentSelectNodes的全部内容。收藏不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
