xml解析 增刪改查操作後將其修改結果儲存

2021-09-02 16:30:53 字數 2546 閱讀 4492

[align=center][size=large]對xml文件進行增刪改查操作後將其修改結果儲存[/size][/align]

一、可擴充套件標記語言xml:extensible markup language

1、xml的作用:1)統一資料傳輸的格式。2)做小型資料庫[檔案型資料庫]。3)做配置檔案 .ini .propertity .xml .cfg

2、xml檔案的基本格式:

標籤:分為雙標籤和單標籤,雙標籤的開頭和結尾標籤名必須一致,大小寫一樣,/ 開頭的是結尾標籤,單標籤必須在 > 前加上 / 來結尾,單標籤中不能放文字。

屬性:在開始標籤中定義一些名值對,值一定是字串

3、xml檔案的基本構成:

1)在第一行是xml宣告 <?xml version="1.0" encoding="utf-8" ?>

2)必須且只能有一對根標籤

3)標籤可以一層一層嵌

二、寫乙個簡單的xml文件stus.xml然後用dom進行解析。

dom : document object model 文件物件模型

dom解析的基本思路:將整個xml檔案一次性讀入記憶體,將整個xml看做一棵文件樹,xml中的每乙個標籤,屬性,文字都看做是樹上的乙個結點,然後可以對結點進行增刪改查的操作。

已經編輯好的stus.xml文件

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

張三19男李四

20女王五21

三、開始解析

建立解析工廠

// 得到解析工廠物件

documentbuilde***ctory factory = documentbuilde***ctory.newinstance();

// 生產乙個解析器物件

documentbuilder builder = factory.newdocumentbuilder();

// 開始解析xml檔案,得到的解析結果是乙個document物件,document物件叫做文件樹物件

document dom = builder.parse("stus.xml");

1、增加節點

基本思路:首先建立乙個新的元素節點,將元素節點追加到根節點後面,設定其節點屬性。建立標籤,設定標籤文字內容,最後將新標籤新增到新的元素節點中。

**:2、刪除節點

基本思路:獲得要刪除的節點,然後得到節點的屬性值,與要刪除的節點的屬性值進行比較,如果該屬性值對應的節點存在則移除該節點。

**:

// 獲得根節點

element root = (element) dom.getfirstchild();

// 獲得所有stu節點

nodelist list = dom.getelementsbytagname("stu");

for (int i = 0; i < list.getlength(); i++)

}}

3、修改節點

基本思路:獲得要修改的節點,修改其屬性值,然後獲得該節點下的標籤,修改標籤中的文字內容。

**:

// 修改節點屬性

for (int j = 0; j < list.getlength(); j++) else if (non.equals("age")) else if (non.equals("***")) }}

}

4、查詢節點

基本思路:獲得所有的節點,用 需要查詢的結點的屬性值與所有節點進行比較,如果該節點存在,就列印該節點的屬性值及其節點下標籤的內容。

**:

for (int j = 0; j < list.getlength(); j++)

}}

4、儲存修改後的xml文件

基本思路:先將記憶體中的document物件寫到xml檔案中,然後將整個document物件作為要寫入xml檔案的資料來源,最後將資料來源寫入目標檔案。

**:

// 將記憶體中的document物件寫到xml檔案中

transforme***ctory tf = transforme***ctory.newinstance();

transformer former = tf.newtransformer();

former.setparameter("version", "1.0");

former.setparameter("encoding", "gbk");

// 將整個document物件作為要寫入xml檔案的資料來源

domsource xmlsource = new domsource(dom);

// 要寫入的目標檔案

streamresult outputtarget = new

streamresult(new file("f:\\stus2.xml"));

former.transform(xmlsource, outputtarget);

使用python操作XML增刪改查

官方文件 import xml.etree.elementtree as et可以從xml檔案 字串中解析 新建乙個xml檔案 張三18 89 李四 1981 王五1792 tree et.parse students.xml root tree.getroot root et.fromstring...

資料操作 增刪改查

select from 表名 例 查詢所有學生資料 select from students新增一行資料 格式一 所有字段設定值,值的順序與表中字段的順序對應 insert into 表名 values 例 插入乙個學生,設定所有欄位的資訊 insert into students values 0...

JQurey CRUD增刪改查操作

prepend 父元素將子元素追加到開頭 物件1.prepend 物件2 將物件2新增到物件1元秦內部,並且在開頭 prependto 物件1.prependto 物件2 將物件1新增到物件2內部,並且在開頭 after 新增元素到元素後邊 物件1.after 物件2 將物件2新增到物件1後邊。物件...