1. 程式人生 > >dom4j解析xml文件全面介紹

dom4j解析xml文件全面介紹

修改xml檔案,需要先獲取dom4j樹(即Document),通常欲修改節點需要先獲得該節點或其父節點,欲修改屬性,需要先獲得該屬性所在的節點和該屬性。 增加操作:參照前文。 刪除操作: 例項程式碼:刪除某節點 Element root = document.getRootElement(); Element skill = root.element("skill"); root.remove(skill); 例項程式碼:刪除指定名稱的屬性 Element skill = root.element("skill"); skill.remove(skill.attribute("name")); 修改操作: 例項程式碼:修改節點名稱和節點值 Element skill = root.element("skill"); skill.setName("new_skill"); skill.setText("你好"); 例項程式碼:修改屬性值
Attribute attr = skill.attribute("name"); attr.setText("newName"); 屬性名稱無法修改,欲修改屬性名稱,可以先刪除舊屬性,再增加新屬性 五、常用方法 1.Element元素API Method Comment getQName() 元素的QName物件 getNamespace() 元素所屬的Namespace物件 getNamespacePrefix() 元素所屬的Namespace物件的prefix getNamespaceURI() 元素所屬的Namespace物件的URI getName() 元素的local name getQualifiedName() 元素的qualified name getText() 元素所含有的text內容,如果內容為空則返回一個空字串而不是null getTextTrim() 元素所含有的text內容,其中連續的空格被轉化為單個空格,該方法不會返回null attributeIterator() 元素屬性的iterator,其中每個元素都是Attribute物件 attributeValue() 元素的某個指定屬性所含的值 elementIterator() 元素的子元素的iterator,其中每個元素都是Element物件 element() 元素的某個指定(qualified name或者local name)的子元素 elementText() 元素的某個指定(qualified name或者local name)的子元素中的text資訊 getParent 元素的父元素 getPath() 元素的XPath表示式,其中父元素的qualified name和子元素的qualified name之間使用"/"分隔 isTextOnly() 是否該元素只含有text或是空元素 isRootElement() 是否該元素是XML樹的根節點 2. Attribute屬性API
Method Comment getQName() 屬性的QName物件 getNamespace() 屬性所屬的Namespace物件 getNamespacePrefix() 屬性所屬的Namespace物件的prefix getNamespaceURI() 屬性所屬的Namespace物件的URI getName() 屬性的local name getQualifiedName() 屬性的qualified name getValue() 屬性的值
2. 字串轉化
例項程式碼:把節點,屬性,文件等轉化成字串,使用asXML()方法。 String docXmlText = document.asXML(); String rootXmlText = root.asXML(); 例項程式碼:把字串轉換為文件,注意引號需要轉義
String skillString = "<skill name="xxx">神龍擺尾</skill>"; Document d = DocumentHelper.parseText(skillString);

3. 名稱空間(Namespace)操作
dom4j的名稱空間資訊api常用的方法有8個。 dom4j在Element和Attribute 介面中定義了獲取名稱空間資訊的方法,這些方法和JDOM中的方法相同。如下所示: public java.lang.String getNamespacePrefix()該方法返回元素(屬性)的名稱空間字首 public java.lang.String getNamespaceURI()該方法返回元素(屬性)的名稱空間 URIpublic java.lang.String getName()該方法返回元素(屬性)的本地名 public java.lang.String getQualifiedName()該方法返回元素(屬性)的限定名 public Namespace getNamespace()該方法返回元素本身的名稱空間 public java.util.List additionalNamespaces()返回某元素上附加的名稱空間宣告列表,列表中的每一個物件都是Namespace型別。 這個類的方法提供了兩個方法分別獲得名稱空間字首和本地名。如下: public java.lang.String getPrefix()該方法返回名稱空間字首。 public java.lang.String getURI()該方法返回名稱空間的URI。