7

我们知道 XPath 是为 XML 解析而创建的。既然 HTML5 不一定遵守 XML 规则,那它又如何呢?

4

3 回答 3

7

有 2 个 XML:词法 XML 和解析 XML。XPath 适用于 Parsed XML 表示,例如 DOM 或XDM。因此,您可以从 Lexical HTML5 创建 Parsed XML,这样您就可以使用 XPath 查询 HTML5。

于 2013-07-14T18:37:40.720 回答
2

你可以有一个巨大的警告,除非你也有,否则你可能不应该这样做。

采用以下 HTML:

<div>
    <p> Here is a paragraph
    <p> Here is another, is it inside the first, who knows?
</div>

现在大多数 HTML 解析器都会接受上面的意思:

<div>
    <p> Here is a paragraph </p>
    <p> And another, is it inside the first, who knows? </p>
</div>

现在,XPath/div/p[2]应该返回"And another...",但是它同样可以解释为:

<div>
    <p> Here is a paragraph
        <p> And another, is it inside the first, who knows? </p>
    </p>
</div>

Where/div/p[2]什么都不返回,XPath/div/p/p返回"And another...".

HTML 不是 XML,不需要格式正确,因此将 XML 技术与 HTML 结合使用可能会导致特殊性。所以只要你承认那些你应该没问题。

于 2013-07-15T01:01:38.417 回答
1

XPath 用于查询 DOM,而不是解析标记。可以从 HTML 文档生成 DOM,因此您可以使用 XPath 查询它。

于 2013-07-14T18:23:22.073 回答