XML XML解析介紹

2021-07-16 22:27:59 字數 2553 閱讀 6141

解析思想

解析: 讀取xml.將xml中記錄 的資料提取.

dom document object model 文件物件模型

dom思想是由w3c組織(world wide web)發布的.

核心思想: 把文件中所有內容都 封裝成物件.

物件種類:

document 整個(html,xml)文件

element 文件中每乙個標籤都會被封裝成element物件

attribute 標籤上的每乙個屬性都會被封裝成attribute

text 文件中,標籤內的文字都會封裝成text物件

common 注釋,文件中的注釋 ,會被封裝成common.

dom的優勢:

將文件結構(所有內容)都以物件的形式保留在了記憶體中.我們可以對記憶體中的(dom樹)進行增刪改查操作,並且操作很方便.

dom的劣勢:

因為保留了全部文件內容,資源消耗比較大.

sax解析思想

出身: 出身於國外論壇.

解析原理: 事件驅動.

優點: 在讀取xml文件時, 已經根據定義好的事件,對xml內容進行了篩選.解析完成後,

記憶體中只保留了我們想要的內容.比較節約資源. 在資源比較匱乏的平台使用.

缺點: 沒有保留文件的結構. 無法進行增刪改的操作.

sax中的事件:

文件開始事件: startdocument

文件結束事件: enddocument

元素開始事件: startelement

元素結束事件: endelement

文字事件:character

pull解析

與sax一樣.都屬於事件驅動的解析方式.

相比sax解析過程更加靈活.

sax一旦開始解析就是從頭讀到尾.不解析完整個文件不會停

pull解析較為靈活.是以事件為單位.手動向下繼續. 如果獲得到我們要找的內容. 可以停止繼續解析.

要解析的stu.xml檔案

<?xml version="1.0" encoding="utf-8" ?>

number="panpan_0001" >

tomname>

<***>male***>

18age>

student>

number="panpan_0002" >

jerryname>

<***>male***>

16age>

student>

students>

解析的**:

實體類部分

package cn.wonders.bean;

public

class

student

public

void

setnumber(string number)

public string getname()

public

void

setname(string name)

public string get***()

public

void

set***(string ***)

public

intgetage()

public

void

setage(int age)

@override

public string tostring()

}

解析部分:

public

class pulltool else

if ("student".equals(parser.getname())) else

if ("name".equals(parser.getname())) else

if("***".equals(parser.getname()))else

if("age".equals(parser.getname()))

break;

case xmlpullparser.end_tag:

if ("student".equals(parser.getname()))

break;

default:

break;

}type = parser.next();

}return list;

}public

static

void

main(stringargs)throws exception

}

解析的結果為:

[student[number=panpan_0001,name=tom,***=male,age=18], student[number=panpan_0002,name=jerry,***=male,age=16]]

etree解析xml XML 檔案解析

目錄 xml 介紹elementtree 基礎講解2.1 節點屬性2.2 節點搜尋獲取矩形框的座標和類別參考 我需要對目標檢測標註工具 labelimg 得到的xml檔案進行解析,得到其中矩形框對應的類別和座標值,所以對python下面的elementtree研究了一下。xml全稱為可擴充套件標記語...

XML(XML概述 XML約束 XML解析)

1 xml 可擴充套件的標記語言。2 xml的作用 3 xml語法 注釋 元素 element 標籤 tag 格式化良好的xml文件,必須只有乙個根元素 屬性 attribute 轉義字元 cdata區 1 xml約束 2 根據dtd約束寫xml文件 3 三種dtd約束 4 schema約束 1 x...

XML XML粗淺理解

xml 作為乙個應用比較廣泛的標記語言,xml是乙個龐大的家族。絕大多數的xml檔案都是從宣告開始的。xml的宣告由版本號和字元編碼方案組成 xml在檔案結構上採用單根樹狀結構。所有的屬性都是從根開始,逐步擴充套件到葉子。在xml中,所有的內容必須在乙個單一元素的子集中,這個單一元素被稱為根元素。需...