day17 xml解析總結

2021-10-07 19:11:04 字數 1340 閱讀 7417

xml解析

1.三種解析方式:

a.dom:先將整個文件讀到記憶體,層層扒皮

優點:能夠保證文件結構完整

缺點:如果文件過大,太消耗資源

b.sax:逐行解析,解析完一行,就釋放一行

優點:處理速度快,可以處理大檔案

缺點:只能讀,逐行後將釋放資源。

c.pull:安卓用的,和sax差不多

2.每一種解析方式都會提供乙個解析器(api)

dom->dom4j

dom4j解析器api介紹

1.讀取xml檔案

2.dom4j核心類

a.saxreader->dom解析 思想的核心類

方法:read(繫結xml檔案的輸入流)->讀取xml,返回的物件是document物件

b.document物件

方法:getrootelement()->獲取根標籤

返回值,返回的是標籤物件:element

c.element物件

方法:獲取子標籤 listelements()

返回的是所有子標籤集合list

方法: string attributevalue(string 屬性名)->獲取指定屬性的屬性值

string gettext()->獲取的是,標籤體的文字部分

3.xpath表示式:快速定位

a.必須有dom4j支援

b.用到的是element的方法

listselectnodes("xpath表示式"),用來獲取多個標籤

selectnodes("//bbb")

node selectsinglenode("xpath表示式"),用來獲取第乙個節點物件

selectsinglenode("//bbb")->獲取第乙個bbb標籤物件

c.xpath表示式

- **第一種查詢形式**

/aaa/ddd/bbb: 表示一層一層的,aaa下面 ddd下面的bbb

- 第二種查詢形式(最常用)

//bbb: 表示和這個名稱相同,表示只要標籤名稱是bbb 都能拿到->主要是看用selectnodes還是selectsinglenode

- 第三種查詢形式

/*: 所有元素

- 第四種查詢形式(沒啥用)

bbb[1]:表示第乙個bbb元素

bbb[last()]:表示最後乙個bbb元素

- 第五種查詢形式

//bbb[@id]: 表示只要bbb元素上面有id屬性 都得到

- 第六種查詢形式

//bbb[@id='b1'] 表示元素名稱是bbb,在bbb上面有id屬性,並且id的屬性值是b1

解析XML檔案總結

from xml.dom import minidom import urllib import stringio minidom.parse,來解析乙個儲存在 web 頁面上 本地檔案中或硬編碼字串中的 xml 文件。對於乙個 web 頁面,使用 urlopen 得到類檔案物件 對於本地檔案,使用...

day10 XML的解析和生成

什麼是xml?1.xml是乙個可擴充套件的標記語言 2.xml中沒有預定義的標記,都需要自行定義 3.xml中有且只有乙個根元素 4.xml和html的區別 4.1.xml中沒有預定的標記,但html中都是預定的標記 4.2.設計的目的不同,html主要是為了展示資料的,焦點資料的外觀 xml主要是...

sax解析xml檔案過程總結

textvalue startelement 4個引數 endelement 3個引數,沒屬性值 value characters乙個個字元的得到,因此儲存value的字串必須在進入此處前初始化,在endelement中輸出 可以在startelement函式中初始化,但是這樣對於common fi...