Java使用DOM4j实现读写XML文件的属性和元素

时间:2022-08-30 21:57:48

dom4可以读取和添加xml文件的属性或者元素

读取属性:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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("cit阿y"));
    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
  }
 
 }

读取元素:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
  }
 }

写入属性:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
   }
  }
 
 }

写出元素:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
  }
  
  
 }

可以修改属性的文本内容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
  }
  
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/chengmuzhe/p/10127895.html