【问题标题】:xpath xml help any one?xpath xml 帮助任何人?
【发布时间】:2016-10-17 17:33:23
【问题描述】:

我想从互联网上获取数据,我已经成功地通过 HTML 解析,现在我需要 xpath 从表中提取它。所以我想从第二行的第二行中提取数据。我该怎么做?我写了这个://table[1]/tr[10]/td[2] 但它没有显示任何东西

谢谢

【问题讨论】:

  • 能否提供需要遍历的Html结构??

标签: html xml xpath html-table


【解决方案1】:

问题在于 HTML 不是 XML,尽管有任何相似之处。这就是为什么您通常不能使用 XML 解析器来解析 HTML(这是使用大多数 XPath 实现所必需的)。

一种选择是使用 TagSoup (Java)、Beautiful Soup (Python) 之类的东西或用于其他平台的类似库。这些库允许像 XML 一样解析 HTML,这意味着标准 XML 库可用于对数据进行操作(XPath、XSLT、DOM 操作、SAX 事件等......)

另一种选择是尝试使用xmllint 之类的东西(使用--html--xmlout 选项)。这会将 HTML 转换为正确的 XML,允许您使用任何您想要的 XML 工具。

【讨论】:

  • 您可以使用 DOM 解析器解析 HTML。有效的 XHTML 在 XML 解析器中也应该没问题。从问题中不清楚他们在使用什么。
  • XML 解析器的类型(DOM、SAX、push、pull 等)与能否解析 HTML 无关。如果它不是格式良好的 XML(而 HTML 通常不是),那么您无法使用 XML 解析器对其进行解析。但是 XHTML XML,因此您可以使用任何 XML 解析器对其进行解析。
  • 周围有很多 DOM 解析器可以很好地处理 HTML。例如 PHP 的 DOMDocument 以及大多数 JavaScript 引擎中内置的。
【解决方案2】:

第一个表的第二行的第二列(根据您的问题假设)不会是

//table[1]/tr[2]/td[2]

这不考虑可能存在的任何<th> 元素。

真的不知道你为什么要指定第十行 (tr[10])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多