我想从网页中提取信息.
该页面有m个节点,可以通过.evaluate("// div [@ class ='news']",document,....)找到.
对于上述每个节点,其中有3个节点.它们中的每一个都有不同的@class选择器.我想提取这些m 3元组记录.
我尝试按照指示使用.evaluate()函数
https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript
通过使用此代码
parentNodes = document.evaluate("//div[@class='news']", document, ....). while (true){ var node = parentNodes.iterateNext(); var child = document.evaluate("//div[@class='title']", node, ....). ... }
但是,"child"始终分配给文档中的第一个节点,而不是"node"中的第一个节点.
我在firebug控制台中运行它.
有人知道什么是错的吗?
你正在对文件进行评估.因此,正在从XML树的根目录评估XPath表达式.此外,如果您希望XPath从当前上下文中选择一个节点,例如在当前节点的子节点中,您应该使用".//"上下文选择器
如果使用"/"启动XPath表达式,则从上下文节点的根节点/文档节点开始.因此,不是"//div[@class = 'title']"
使用"descendant::div[@class = 'title']"
,而是选择上下文节点的后代div元素.