dom4j使用總結

2021-09-08 04:04:00 字數 2711 閱讀 9162

1.載入xml

從檔案載入

saxreader reader = new

saxreader();

string filepath = "/xmlfile/" + filename + ".xml";

document document = null

;

try

catch

(documentexception e)

return document;

通過字串轉換

document document = documenthelper.parsetext(xmlstring);

2.驗證

/**

* 通過xsd驗證xml的準確性**

@param

xsdfilename xsd路徑 要全路徑

* @param

xmlstring xml檔案

* @return

*/public

static

string validatexsd(string xsdfilename, string xmlstring)

return

error;

} else

return "";

} catch

(exception ex)

}

注意,驗證xsd的路徑名要是完整的全路徑,如e://xml/xsd/test.xsd

3.xpath

<?

xml version="1.0" encoding="utf-8"

?>

<

root

>

<

name

value

="張三"

>

<

address

>福建省廈門市***

address

>

name

>

root

>

獲取值:福建省廈門市***

document.selectsinglenode("//name/address").gettext();

獲取name的屬性value

document.selectsinglenode("//name/@value").gettext();

命名空間的處理:當xml有命名空間時,xpath的查詢也要加上命名空間,且只能查詢乙個層級

map map = new

hashmap();

map.put("ns", namespace);

xpath x = newxmldoc.createxpath("//ns:name");

這裡只查詢一級name是有值的,但是如果想同時查詢name下面的address,則返回的是空

map map = new

hashmap();

map.put("ns", namespace);

xpath x = newxmldoc.createxpath("//ns:name");

x.setnamespaceuris(map);

node node= (x.selectsinglenode(rootnode));//

有值 x = newxmldoc.createxpath("//ns:name/address");

node node2= (x.selectsinglenode(rootnode));//

值為空

如果想查詢address上的值,則必須在name節點上查詢,如

map map = new

hashmap();

map.put("ns", namespace);

xpath x = newxmldoc.createxpath("//ns:name");

x.setnamespaceuris(map);

node node= (x.selectsinglenode(rootnode));//

有值 x = newxmldoc.createxpath("//ns:address");

x.setnamespaceuris(map);

node node2= (x.selectsinglenode(node));//

有值

所以想一次性用xpath查詢,最好先把命名空間去掉

4.增加命名空間

document newxmldoc =documenthelper.createdocument();

//頭部構建

element rootnode =newxmldoc.addelement(strmsgmodelcode);

rootnode.addnamespace("", namespace);

第乙個引數是空

5.在固定節點插入

要迴圈遍歷節點,然後呼叫elements.add方法。這個真沒有.net的linq to xml方便。

listelements =rootnode.elements();

int index = 0;

for(element element : elements)

}

dom4j 使用dom4j生成xml

使用org.dom4j.element 建立xml 生成service.xml檔案 param tran 交易物件 param filepath 資料夾路徑 public static void exportservicexml listtranlist,string filepath servic...

使用dom4j工具 xml總結

1.io流 bufferedreader字元流readline 擷取 不可行 2.xml解析 dom4j 查 標籤 element name elements name elements getname 標籤名 getrootelement 根標籤 屬性 attributevalue name 屬性...

dom4j簡單使用

公司這邊是用dom4j,主要是用來解析xml的,一般有這麼幾個操作 1.建立xml文件 org.dom4j.document doc documenthelper.createdocument 2.建立根元素並新增 element root documenthelper.createelement ...