Java:使用DOM4j來實現讀寫XML檔案中的屬性和元素
阿新 • • 發佈:2018-11-10
DOM4可以讀取和新增XML檔案的屬性或者元素
讀取屬性:
public static void ReadAttributes() throws DocumentException { File file = new File("D:\\cmz\\java\\XMLTest\\Customertest.xml"); SAXReader reader = new SAXReader(); Document doc = reader.read(file); Element root = doc.getRootElement(); try { for (Iterator iterator = root.elementIterator(); iterator.hasNext();) { Element element = (Element) iterator.next(); String CustomerID = element.attributeValue("CustomerID"); System.out.println("CustomerID = " + CustomerID); String CompanyName = element.attributeValue("CompanyName"); System.out.println("CompanyName = " + CompanyName); System.out.println("ContactName = " + element.attributeValue("ContactName")); System.out.println("ContactTitle = " + element.attributeValue("ContactTitle")); System.out.println("Address = " + element.attributeValue("Address")); System.out.println("City = " + element.attributeValue("City")); System.out.println("PostalCode = " + element.attributeValue("PostalCode")); System.out.println("Country = " + element.attributeValue("Country")); System.out .println("Phone = " + element.attributeValue("Phone")); System.out.println("Fax = " + element.attributeValue("Fax")); System.out .println("--------------------------------------------------------\t"); } } catch (Exception e) { // TODO: handle exception } }
讀取元素:
public static void ReadInnerTest() throws DocumentException { File file = new File("D:\\cmz\\java\\XMLTest\\Customer1.xml"); SAXReader reader = new SAXReader(); Document doc = reader.read(file); Element root = doc.getRootElement(); try { for (Iterator iterator = root.elementIterator(); iterator.hasNext();) { Element type = (Element) iterator.next(); System.out.println(type.elementText("CustomerID")); System.out.println(type.elementText("CompanyName")); System.out.println(type.elementText("ContactName")); System.out.println(type.elementText("ContactTitle")); System.out.println(type.elementText("Address")); System.out.println(type.elementText("City")); System.out.println(type.elementText("PostalCode")); System.out.println(type.elementText("Country")); System.out.println(type.elementText("Phone")); System.out.println(type.elementText("Fax")); System.out.println("---------------------------------\t"); } } catch (Exception e) { // TODO: handle exception } } -----
寫入屬性:
public static void WriteAttributes() { Document doc = DocumentHelper.createDocument(); Element ele = doc.addElement("table"); for (int i = 1; i < 5; i++) { Element Customers = ele.addElement("Customers"); Customers.addAttribute("CustomerID", "ALFKI" + i); Customers.addAttribute("CompanyName", "Alfreds Futterkiste" + i); Customers.addAttribute("ContactName", "Maria Anders" + i); Customers.addAttribute("ContactTitle", "Sales Representative" + i); Customers.addAttribute("Address", "Obere Str. 57"); Customers.addAttribute("City", "beijin"); Customers.addAttribute("PostalCode", "12209"); Customers.addAttribute("Country", "Germany"); Customers.addAttribute("Phone", "030-0074321"); Customers.addAttribute("Fax", "030-0076545"); try { XMLWriter writer = new XMLWriter(new FileWriter(new File( "Customertest.xml"))); writer.write(doc); writer.close(); } catch (Exception e) { // TODO: handle exception } } }
寫出元素:
public static void writeInnerTest(){
Document doc = DocumentHelper.createDocument();
Element ele = doc.addElement("table");
for (int i = 1; i < 5; i++) {
Element Customers = ele.addElement("row");
Element CustomerID = ele.addElement("CustomerID");
CustomerID.setText("ALFKI" + i);
Element CompanyName = ele.addElement("CompanyName");
CompanyName.setText("Alfreds Futterkiste" + i);
Element ContactName = ele.addElement("ContactName");
ContactName.setText("Maria Anders" + i);
Element ContactTitle = ele.addElement("ContactTitle");
ContactTitle.setText("Sales Representative" + i);
Element Address = ele.addElement("Address");
Address.setText("Obere Str. 57");
Element City = ele.addElement("City");
City.setText("beijin");
Element PostalCode = ele.addElement("PostalCode");
PostalCode.setText("12209");
Element Country = ele.addElement("Country");
Country.setText("Germany");
Element Phone = ele.addElement("Phone");
Phone.setText("030-0074321");
Element Fax = ele.addElement("Fax");
Fax.setText("030-0076545");
}
try {
XMLWriter writer = new XMLWriter(new FileWriter(new File(
"Customertest2.xml")));
writer.write(doc);
writer.close();
} catch (Exception e) {
// TODO: handle exception
}
}
可以修改屬性的文字內容:
public static void ReadUpdateattribute() throws DocumentException{
File file = new File("D:\\cmz\\java\\XMLTest\\Customertest.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
Element root = doc.getRootElement();
try {
for (Iterator iterator = root.elementIterator("Customers"); iterator.hasNext();) {
Element element = (Element) iterator.next();
String name = "ALFKI1";
if (name.equals(element.attributeValue("CustomerID")) ) {
Attribute attr = element.attribute("CustomerID");
attr.setValue("234");
Element ContactName = element.addElement("23424");
ContactName.setText("676767" );
}
}
XMLWriter writer = new XMLWriter(new FileOutputStream(file));
writer.write(doc);
ReadAttributes();
} catch (Exception e) {
// TODO: handle exception
}
}