Logo

郎哥编程

HTML与XPath

2020-08-13 379

Xpath是一种在使用标记语言构成的文档中查询元素的语言,XML和HTML都是标记语言,因此使用Xpath可以在XML和HTML文档中查询元素。

在标记语言中,标记也称为标签(也可以称为文档的元素),在Xpath中称为节点,标记一般是成对的,有起始标签和结束标签,在起始标签和结束标签之间是标签的内容,内容可以包含标签和文本信息。

例如:

<html>
<head>……</head>
<body>
      <div>……</div>
    ……
<div>……</div>
</body>
</html>

案例是一个基本的HTML文档结构,案例给出的标签有<html>、<head>、<body>、<div>,当然还有很多的HTML标签案例没有列出。

标签一般都是成对的,<html>是起始标签,</html>是结束标签。

HTML文档是一个层级结构,层级数量没有限制,文档中的同级标签为一层,标签也称为节点。

<html>标签是根节点,是HTML文档的第一层,<head>标签和<body>标签是<html>根节点的子节点,是HTML文档的第二层,<body>节点内的<div>节点是<body>节点的子节点,是HTML文档的第三层,同级的<div>节点是兄弟节点,在<div>节点下还可以有子节点。

XPath的节点

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点。我们主要关注元素、属性、文本、文档节点。

<html>
<head>
     <title>我的第一个网页</title>
</head>
<body>
      <h1>这是第一个网页</h1>
     <hr>
     <p class=“c1”>这是一个段落</p>
</boyd>
</html>

在上面的HTML文档中:

<html>标签是文档节点。

<head>、<body>、<h1>、<hr>、<p class=“c1”>是元素节点。

class=“c1”是元素节点<P>的属性节点。

元素节点内的文本是文本节点。

XPath的节点关系

XPath的节点关系有父关系(parent)、子关系(children)、兄弟关系(sibling)、先辈关系(ancestor)、后代关系(descendant)。

(1)父关系(parent)

文档节点除外,每个元素节点都有直接的上层节点,元素节点与直接的上层节点的关系就是父关系,元素节点的直接上层节点也称为该元素的父节点。

例如:

<head>、<body>、<h1>等节点和<html>节点就是父关系,<html>是这些节点的父节点。

<h1>、<hr>、<p>节点和<body>节点是父关系,<body>节点是这些节点的父节点。

(2)子关系(children)

元素节点的直接下层节点与该元素节点为子关系,元素节点的直接下层节点也称为该元素的子节点。

例如:

<body>的子节点有<h1>、<hr>、<p>节点。

(3)兄弟关系(sibling)

同层的元素节点为兄弟关系,这些元素节点也称为兄弟节点。

例如:

<h1>、<hr>、<p>这些节点是兄弟节点。

(4)先辈关系(ancestor)

元素节点父节点的父节点、……,与该元素节点是先辈关系,这些元素节点也称为该元素节点的先辈节点。

例如:

<h1>、<hr>、<p>节点的先辈节点是<html>文档节点。

(5)后代关系(descendant)

元素节点子节点的子节点、……,与该元素节点是后代关系,这些元素节点也称为该元素节点的后代节点。

例如:

<html>文档节点的后代节点有<h1>、<hr>、<p>节点。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论