- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个带有根元素、两个子元素“诊断”和“结果”的 xml 文档。然后,“results”元素具有任意数量的名为“result”的元素
当它被加载到 XmlDocument 中时,很容易浏览结构并看到这正是事情的运作方式。我可以编写一个递归函数来挑选出所有“结果”元素。 XmlDocument.SelectNodes("//results") 找到一个节点没有问题。
但是,* XmlDocument.SelectNodes("//results/result") 什么也找不到。
* XmlDocument.SelectNodes("//result") 找不到任何内容。
我和一位同事谈过,他对在 XmlDocument.SelectNodes 中使用 Xpath 感到很伤心。还有其他人遇到这种问题吗?有什么解决办法吗?
XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="10" yahoo:created="2009-08-07T10:19:59Z" yahoo:lang="en-US" yahoo:updated="2009-08-07T10:19:59Z" yahoo:uri="http://query.yahooapis.com/v1/yql?q=select+*+from+search.news+where+query%3D%22Tanzania%22">
<diagnostics>
<publiclyCallable>true</publiclyCallable>
<url execution-time="47"><![CDATA[http://boss.yahooapis.com/ysearch/news/v1/Tanzania?format=xml&start=0&count=10]]></url>
<user-time>49</user-time>
<service-time>47</service-time>
<build-version>2579</build-version>
</diagnostics>
<results>
<result xmlns="http://www.inktomi.com/">
<abstract>Kakungulu Cup winners SC Villa face Tanzania’s Simba SC this afternoon at the National stadium in Dar es salaam. “We had a very tiresome journey. The road was so bad and the road blocks were so many. However, we finally reached but the boys were so tired,” said Kato.</abstract>
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4cXAxcnRoBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA21VVGlta2dlQXUzeEYuM0xGQkQzR1pUU1FIS0dORXA4cUk4QUJJX1U-/SIG=12vhpskdd/**http%3A//www.monitor.co.ug/artman/publish/sports/SC_Villa_face_Simba_in_Tanzania_89289.shtml</clickurl>
<date>2009/08/07</date>
<language>english</language>
<source>The Monitor</source>
<sourceurl>http://www.monitor.co.ug/</sourceurl>
<time>20:22:32</time>
<title>SC Villa face Simba in Tanzania</title>
<url>http://www.monitor.co.ug/artman/publish/sports/SC_Villa_face_Simba_in_Tanzania_89289.shtml</url>
</result>
XPATH
doc.SelectNodes("//result") 没有命中。
最佳答案
Rob 和 Marc 的回答可能是在朝着正确的方向前进——XmlDocument + 命名空间 + XPath 可能有点麻烦。
如果您能够使用 .NET 3.5,我建议您改用 LINQ to XML。这将使它真的变得容易:
XDocument doc = XDocument.Load("foo.xml");
XNamespace ns = "bar";
var results = doc.Descendants(ns + "result");
foreach (var result in results)
{
...
}
根据我的经验,LINQ to XML 基本上在几乎所有方面都是一个出色的 API :)(我相信它缺少一些功能,但如果您可以访问 .NET 3.5,那绝对值得至少尝试一下。)
关于C# XmlDocument SelectNodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1247398/
我正在尝试解析这个字段,但无法让它工作 HtmlAgilityPack.HtmlNode link = doc.DocumentNode.SelectSingleNode("//ul[@cla
如果我在 XmlElement 上调用 SelectNodes,并像这样传递 XPath 查询: XmlNodeList nodes = xmlElement.SelectNodes("//Other
我有一个带有根元素、两个子元素“诊断”和“结果”的 xml 文档。然后,“results”元素具有任意数量的名为“result”的元素 当它被加载到 XmlDocument 中时,很容易浏览结构并看到
是否拉取Xpath支持的所有节点类型?好像当我打电话 selectNodes(“ @”) 它只是返回包含属性的元素,但我想自己获取属性列表。换句话说,我希望所得的节点集合仅包含Attr类型的节点...
使用根节点选择和使用文档对象选择节点有什么区别?首选哪种方式。 例如, 1. XmlDocument Doc = new XmlDocument(); Doc.Load(mem); XmlNodeLi
我有以下 XML: {2FCC78E0-EC60-E011-9854-000C291F081D} 我正在尝试使用 xmldoc.selectNodes("//a
令人惊讶的是 IXMLDOMDocument::selectNodes 没有按预期工作。我知道这是因为 xmlns="http://stackoverflow.com/questions/ask",但
我正在尝试创建一个通用的 XmlParsing 方法。以 Xml 为例: ... ... ..
我有以下 HTML: Headquarters Princeton New Jersey, United States
我正在尝试使用 SelectNodes 使用 HtmlAgilityPack 进行一些屏幕抓取,并从返回的每个节点获取一些值 这是代码 private readonly HtmlDocument _d
我想从 XML 文件中获取值,但我失败了。你能帮我指出问题吗??因为我已经非常努力地进行测试和谷歌搜索,但我仍然无法发现问题。 XML: - xxx false
我正在尝试从脚本节点和具有名为“relativeNav”的类的 ul 中选择节点。有人可以指导我走正确的道路吗?我一直在寻找这个一周,但我无法在任何地方找到它。目前我有这个,但它显然也选择了//ul[
我不确定为什么这不起作用。 我有一个已知格式的 XmlNode。它是: 我在名为pattern 的变量中引用了节点。我想要一个可
SelectNodes 和 GetElementsByTagName 之间的主要区别是什么。 最佳答案 SelectNodes是一个特定于 .NET/MSXML 的方法,它获取 XPath 的匹配节点
本文整理了Java中play.libs.XPath.selectNodes()方法的一些代码示例,展示了XPath.selectNodes()的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中play.libs.XPath.selectNode()方法的一些代码示例,展示了XPath.selectNode()的具体用法。这些代码示例主要来源于Github/Stackov
我想遍历表中的所有行并选择所有 连续。 foreach (var r in Table.SelectNodes("tr")) { var Paragraphs = r.SelectNodes(
我对命名空间失去了理智。在遵循大多数关于如何使用 SelectNodes 的帖子之后,我终生无法弄清楚如何使用 SelectNodes。 我的xml:
Javascript: var req=xmlDoc.responseXML.selectSingleNode("//title"); alert(req.text); 如预期的那样,返回第一个“ti
我必须遵循以下XML文件: text:SOME_ID
我是一名优秀的程序员,十分优秀!