Dom4j工具j解析XML原理和示例代碼
阿新 • • 發佈:2018-11-21
nta row class val sys 得到 iter style hone
import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * 把xml文檔信息封裝到對象中 * */ public class Demo { public static void main(String[] args) throws Exception{ List<Contact> list = new ArrayList<Contact>(); //讀取xml,封裝對象 SAXReader reader = new SAXReader(); Document doc = reader.read(new File("./src/contact.xml")); //讀取contact標簽 Iterator<Element> it = doc.getRootElement().elementIterator("contact");while(it.hasNext()){ Element elem = it.next(); //創建Contact Contact contact = new Contact(); contact.setId(elem.attributeValue("id")); contact.setName(elem.elementText("name")); contact.setAge(elem.elementText("age")); contact.setPhone(elem.elementText("phone")); contact.setEmail(elem.elementText("email")); contact.setQq(elem.elementText("qq")); list.add(contact); } for (Contact contact : list) { System.out.println(contact); } } }
contact.xml
<?xml version="1.0" encoding="utf-8"?> <contactList> <contact id="001"> <name>張三</name> <age>20</age> <phone>134222223333</phone> <email>[email protected]</email> <qq>432221111</qq> </contact> <contact id="002"> <name>李四</name> <age>20</age> <phone>134222225555</phone> <email>[email protected]</email> <qq>432222222</qq> </contact> </contactList>
運行日誌如下:
Contact [age=20, [email protected], id=001, name=張三, phone=134222223333, qq=432221111] Contact [age=20, [email protected], id=002, name=李四, phone=134222225555, qq=432222222]
原理:
讀取xml文檔: Document doc = new SAXReader().read("xml文件"); 節點: nodeIterator(); 所有節點 標簽: element("名稱") 指定名稱的第一個子標簽對象 elementIterator("名稱"); 指定名稱的所有子標簽對象 elements(); 所有子標簽對象 屬性: attributeValue(“名稱”) 指定名稱的屬性值 attribute("名稱") 指定名稱的屬性對象 getName() 屬性名稱 getValue() 屬性值 atributeIterator() 所有屬性對象(Iterator) attributes() 所有屬性對象(List) 文本: getText() 得到當前標簽的文本 elementText("子標簽名稱") 得到子標簽的文本
Dom4j工具j解析XML原理和示例代碼