xpath 相关问题

XPath的主要目的是解决XML文档的各个部分。它还提供操纵弦乐,数字和布尔值的基本设施。 XPath使用紧凑的非XML语法。 XPath在XML文档的抽象逻辑结构上运行,而不是表面语法。

Selenium 不可靠地返回查找到的元素

我被困住了..这么多个小时..在这里查找了数百个问题和答案.. 我想从银行产品网站 grep 数据,例如“德尔塔”来自: https://wertpapiere.ing.de/Investie...

回答 1 投票 0

为什么 google chrome 不打印我的 XPath 查询的 text() ?

我正在尝试在 Chrome 中提取 xpath 查询 $x('//td[@class="first"]/a/text()') 的文本,但是当我运行此命令时,我看到文本而不是锚链接的实际文本值...

回答 3 投票 0

XPATH text() 函数和类似函数:参考在哪里?

我正在尝试更好地使用 XPATH – 特别是在 Javascript 中通过 document.evaluate() 通常,当学习 Javascript 的新方面时,我会研究 MDN 文档,因为它们往往是......

回答 1 投票 0

需要一些有关 XPath 表达式的帮助。一个有效,另一个无效

我正在使用 COBRA HTMLParser,但还没有解析一个特定标签的运气。这是来源: ... 我正在使用 COBRA HTMLParser,但还没有解析一个特定标签的运气。来源如下: <li id="eta" class="hentry"> <span class="body"> <span class="actions"> </span> <span class="content"> </span> <span class="meta entry">Content here </span> <span class="meta entry stub">Content here <span class="shared-content"> Information by <a class="title" data="associate" href="/associate">Associate</a> </span> </span> </span> </li> 我能够使用以下 XPath 来获取正确的信息: XPath xpath = XPathFactory.newInstance().newXPath(); NodeList nodeList = (NodeList) xpath.evaluate("//span[contains(@class, 'body')]", document, XPathConstants.NODESET); int length = nodeList.getLength(); System.out.println(nodeList.getLength()); for(int i = 0; i < length; i++) { Element element = (Element) nodeList.item(i); NodeList n = null; try { n = (NodeList) xpath.evaluate("span[contains(@class, 'content')]", element, XPathConstants.NODESET); String body = n.item(0).getTextContent(); System.out.println("Content: " + body); } catch (Exception e) {}; try { String date = (String) xpath.evaluate("span[contains(@class, 'meta entry')]/a/span/@data", element, XPathConstants.STRING); System.out.println("DATA: " + date); String source = (String) xpath.evaluate("//span[contains(@class, 'meta entry')]/span", element, XPathConstants.STRING); System.out.println("DATA: " + source); } catch (Exception e) {}; //This does not work at all! I've tried every combination and still can't get it to run try { String info = (String) xpath.evaluate("//span[@class='shared-content']/a/@data", element, XPathConstants.STRING); System.out.println("INFO: " + info); } catch (Exception e) {}; } 无论我尝试什么组合,最后一个表达式都不起作用。我也尝试过以下方法,但没有帮助, String info = (String) xpath.evaluate("//span[contains(@class, 'shared-content')]/a/@data", element, XPathConstants.STRING); String info = (String) xpath.evaluate("//span[contains(@class, 'meta entry info')]/span/a/@data", element, XPathConstants.STRING); 有什么建议吗? 编辑:有一些关于 XML 非法的建议(老实说,我自己也不确定为什么它是非法的,因为到目前为止我几乎到处都看到它),但我无法控制 XML不过(至少到周一,直到我的其他朋友回来为止)。我试图看看编写包含这些信息的混搭的可行性。有什么办法可以禁用检查或其他什么吗? 这是解析的 XML: <?xml version="1.0" encoding="UTF-8"?> <span class="body"> <span class="content">TextContent</span> <span class="meta entry">TextContent</span> </span> 我猜文档没有被正确解析。 XPathVisualizer 是一个很好的 XPath Visualizer 工具,在 Windows 上运行,可让您查看 XPath 查询的结果。 Xcopy 安装,单个 EXE 文件。自由的。 我拿走了它并在其中运行了您的查询,得到了这个结果: @Jherico,@安德鲁·基思 我不知道 COBRA HTMLParser,但是将 #PCDATA 与内部节点结合起来是一种合法的 XML 格式。 这可以在 DTD 中这样定义: <!ELEMENT text_node (#PCDATA|i|b|u)*> 这就是格式良好的 HTML 仍然是合法的 XML 的方式。 我运行了以下代码 public static void main(String[] args) throws SAXException, IOException, ParserConfigurationException, XPathExpressionException { Document doc = XmlUtil.parseXmlResource("/temp.xml"); for (Node n : XPathUtil.getNodes(doc, "//span[contains(@class, 'body')]")) { System.out.println(XPathUtil.getStringValue(doc, "//span[@class='shared-content']/a/@data")); } } 它输出“关联”。我认为你的 XPath 没问题。相反发生了什么?您能否删除空的 catch 块,以便我们可以查看您是否确实遇到了异常? 注意,XmlUtil 和 XPathUtil 是我个人的方便函数,用于消除大部分 XPath 和 XML 样板代码。 我刚刚按原样运行了您的代码示例(复制粘贴)并得到了此输出。所以一切看起来都很好。 (你用的是哪个cobra版本?我0.98.4) 1 Content: DATA: DATA: Information by Associate INFO: associate 可重复的测试(?) 使用javac/java版本1.6.0_16(HotSpot客户端:build 14.2-b01,混合模式,共享) 我从这里下载了 0.98.4 (cobra-0.98.4.zip) Sourceforge:Cobra HTML 工具包下载 从 js.jar 中提取 cobra.jar 和 cobra-0.98.4.zip:\lib 到目录 XXX 在同一目录中写入XMLTest.java和HTMLTest.java(!文件名是源链接) 运行此编译(Windows):javac -cp .;cobra.jar;js.jar *.java 然后像这样执行(包括输出) XML测试 java -cp .;cobra.jar;js.jar XMLTest 1 XML测试输出: 1 Content: DATA: DATA: Information by Associate INFO: associate HTML测试 java -cp .;cobra.jar;js.jar HTMLTest 1 HTML测试输出: 1 Content: DATA: DATA: Information by Associate INFO: associate

回答 4 投票 0

如何在java中处理嵌套的xml文件?

我正在与纽约时报语料库合作开展一个项目,现在我在使用 xml 文件检索大部分项目的文本内容时遇到困难。 语料库中的每一年

回答 1 投票 0

网页抓取 <td>标签问题 - Python 3 With Lxml

使用 lxml 库在 python 中进行网页抓取。我的代码当前输出一个空列表: 从 lxml 导入 html 导入请求 page = requests.get('www.example.com') 树 = html.fromstring(page.content)

回答 1 投票 0

Javascript 无法找到某些现有元素

我正在编写一个Javascript,它应该找到同意横幅按钮并单击“接受所有cookie”等按钮。我的代码适用于多个站点,如下: 函数removeDiac...

回答 1 投票 0

Xml 节点的 Xml 后代

这是一个简化的mxl结构'xml', 爱丽丝30 B...

回答 1 投票 0

如何使用 VBA 和 MSXML2 通过 Xpath 进行搜索?

我想使用 XPath 表达式从网站获取元素。我使用内置的 Microsoft 库 MSXML2 来执行此操作,但没有 getElementByXpath() 方法。我发现这非常有趣...

回答 1 投票 0

同一 div 标签内所有文本的 XPath?

“不 ” “消息” “ 成立” 我想识别div中的所有文本,并且class属性值是动态的,所以c...

回答 1 投票 0

同一 div 标签内所有文本单词的 XPath?

“不 ” “消息” “ 成立” 我想识别 div 中的所有三个单词,并且 class 属性值是动态的...

回答 1 投票 0

任何人都可以帮助我如何为同一 div 标签内的所有文本单词编写 xpath

“不 ” “消息” “ 成立” 我想识别 div 中的所有三个单词,并且 class 属性值是动态的...

回答 1 投票 0

如何连接Freeplane父节点中所有子节点的匹配属性?

Freeplane 文件是 XML,它们显然使用 groovy 脚本,但我无法弄清楚如何使用父节点中的公式返回属性(作为文本字符串)。主要帮助页面在这里:http...

回答 1 投票 0

访问下一个兄弟的文本

这是 jenkins xml 文件的一部分。 我想用 xpath 提取project_name 的defaultValue。 在本例中,该值是 *****。 ...

回答 2 投票 0

rvest 函数 read_html_live() 不允许 html_elements() 正确读取

虽然 read_html_live() 确实返回一个似乎包含所有相关“位”的节点集,但我无法在其上使用 html_elements() (即使相同的网站和相同的 xpath,也可以工作

回答 1 投票 0

Xpath 测试是否是数字或有效的数字表达式

找出节点值是否为数字非常简单,例如: 但是,如果我...

回答 1 投票 0

使用 SaxonJ HE 在 XPath 中转义正则表达式

我正在尝试使用 SaxonJ HE 12 (java) 在 XPath 表达式的 matches() 参数中使以下负向前瞻工作: //测试[匹配(我, '(?!0115)[0-9]{4}')] 我知道我需要逃避一些......

回答 1 投票 0

按钮点击和网页抓取

我试图从以下位置获取评论数量和评论内容:https://www.arlnow.com/ 我的“加载更多评论”按钮有问题。 我试过: load_more_xpath = '//a[包含(t...

回答 1 投票 0

PHP XML Xpath 获取价格低于不起作用

14,95 16,95 <Product> <Price> <SalePrice> 14,95 </SalePrice> </Price> </Product> <Product> <Price> <SalePrice> 16,95 </SalePrice> </Price> </Product> $response->xpath('Product/Price/[SalePrice <= "16,95"]/parent::* 您好,我想要每个销售价格等于或低于 16,95,如我的示例中所示。但每次我尝试时,它都会给出一个空数组。如果我只使用: $response->xpath('Product/Price/[SalePrice = "16,95"]/parent::* 我得到了结果。我希望你能帮助我解决这个问题。谢谢 将逗号翻译为点以获得正确的浮点数 将字符串转换为数字 将结果与浮点数而不是字符串进行比较 //产品/价格/销售价格[number(translate(.,',','.'))<= 16.95]/parent::* 评估演示

回答 1 投票 0

如何编写xpath来获取标签的值

需要获取上述标签的桌面版和移动版的价值。 XPath 应该使用标签来获取相应的值。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.