xpath模块使用

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

xpath模块使用

叶落西南   2020-03-28 我要评论
## xpath模块使用 #### 一、什么是xml(百度百科解释如下) 可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。 在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。 ##### 1.1、总结如下 ​ 1、定义:可扩展标记性语言(EXtensible Markup Language) ​ 2、特定:xml是具有自描述特性的半结构化数据。 ​ 3、作用:xml主要用来传输数据 #### 二、xml与html的区别 - 语法严格性不同 - 在html中不区分大小写,在xml中严格区分。 - 在html中,如果你可以省略某些结尾标签,还是可以正常显示。在xml中,是严格的树状结构,绝对不能省略任何标记。 - 在xml中,没有结尾标签的标签,必须用一个/字符作为结尾。``````。 - 在xml中,属性值必须使用在引号。在html中,引号可用可不用。 - 在html中属性名可以不带属性值,xml必须带。 - xml文档中,空白部分不会被解析器自动删除,但是html是过滤掉空格的。 - 标记不同 - html使用固有的标记,xml没有固有标记。 - html标签是预定义的,xml标签是自定义的、可扩展的。 - 用途不同 - html的设计宗旨是用来显示数据。 - xml是用来传输数据的,或者用于配置文件。 #### 三、xpath ##### 3.1、什么是xpath - XPath 使用路径表达式在 XML 文档中进行导航 - XPath 包含一个标准函数库 - XPath 是 XSLT 中的主要元素 - XPath 是一个 W3C 标准 简而言之,xpath是在xml文档中,根据路径查找元素的语法。 ##### 3.2、xpath常用术语 - 元素:文档树中的标签就是一个元素。 - 节点:表示xml文档树的某一个位置,例如 / 代表根节点,代表文档树起始位置,元素也可以看成某一位置上的节点。 - 属性:``````中 ```lang```就是某一个节点的属性。 - 文本:``````中Harry Potter就是文本。 ##### 3.3、xpath语法 ```xml ``` - 选取节点 - | 表达式 | 描述 | | :------- | :-------------------------------- | | nodename | 选取标签或者元素 。 | | / | 从根节点选取,或者代表下一个节点。 | | // | 从文档中的任意位置。 | | . | 选取当前节点。 | | .. | 选取当前节点的父节点。 | | @ | 选取属性. | - 谓语,限定我们进行取值。 - 通过位置进行限定 - | 路径表达式 | 结果 | | :---------------------------- | :-------------------------------------------------------- | | /bookstore/book[1] | 选取属于 bookstore 子元素的第一个 book 元素。 | | /bookstore/book[last()] | 选取属于 bookstore 子元素的最后一个 book 元素。 | | /bookstore/book[last()-1] | 选取属于 bookstore 子元素的倒数第二个 book 元素。 | | /bookstore/book[position()```<```3] | 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。 | - 通过属性和内容限定 - | 路径表达式 | 结果 | | ----------------------------------- | ------------------------------------------------------------ | | //title[@lang] | 选取所有拥有名为 lang 的属性的 title 元素。 | | //title[@lang="eng"] | 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 | | //title[contains(@lang,"eng")] | 选取所有 title 元素,且这些元素包含值为 eng 的 lang 属性。 | | //title[not(contains(@lang,"eng"))] | 选取所有 title 元素,且不包含元素属性值为 eng 的 lang 属性。 | | /bookstore/book[price>35.00] | 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。 | | //title \| //price | 选取文档中的所有 title 和 price 元素。 | - 选取位置节点 - | 通配符 | 描述 | 表达式 | 结果 | | :----- | :----------------- | ---------- | ------------------------ | | * | 匹配任何元素节点。 | //book/* | 选取book节点下的所有元素 | | @* | 匹配任何属性节点。 | //title/@* | 选取title节点所有属性 | #### 四、lxml 模块 lxml模块是python中的处理xml文件的第三方库. ``` pip install lxml ``` ##### 使用 ``` from lxml import etree xmls = ''' ''' xml = etree.HTML(xmls) print(xml.xpath('//title[@lang="eng"]')) #选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 #结果 [

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们