xml

来源:互联网 发布:吃金针菇拉金针菇知乎 编辑:程序博客网 时间:2024/06/11 23:09
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package editXML;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
 
public class w3c_Xml {
     
    static DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    static DocumentBuilder builder = null;
     
 public static void readXML() {
  try {
      builder = factory .newDocumentBuilder();  
      Document document = builder.parse(new File("E:\\testFiles\\test.xml"));
      Element rootElement = document.getDocumentElement();
 
      NodeList list = rootElement.getElementsByTagName("Header");
      Element element = (Element) list.item(0);
      System.out.println(element.getChildNodes().item(0).getNodeValue());
 
  }catch (Exception e) {
      System.out.println("exception:" + e.getMessage());
  }
 }
  
 public static void writeXML(Document document,String filename)
 {
     try {
         builder = factory .newDocumentBuilder();  
         //Document document = builder.parse(new File("E:\\testFiles\\test.xml"));
         document.normalize();
          
         /** 将document中的内容写入文件中 */
         TransformerFactory tFactory = TransformerFactory.newInstance();
         Transformer transformer = tFactory.newTransformer();
         transformer.setOutputProperty(OutputKeys.ENCODING,"UTF-8");
         transformer.setOutputProperty(OutputKeys.INDENT,"yes");
         //编码
         DOMSource source = new DOMSource(document);
         PrintWriter pw = new PrintWriter(new FileOutputStream(filename));
         StreamResult result = new StreamResult(pw);
         transformer.transform(source, result);
     }catch (Exception e) {
            e.printStackTrace();
        }
      
 }
  
 public static void updateXML()
 {
     try {
        builder = factory .newDocumentBuilder();
        Document document = builder.parse(new File("E:\\testFiles\\test.xml"));
        Node root = document.getDocumentElement();
        /**如果root有子元素*/
        if(root.hasChildNodes())
        {
            NodeList ftpnodes = root.getChildNodes();
            /**循环取得ftpnodes所有节点*/
            for(int i=0;i<ftpnodes.getLength();i++)
            {
                Node ftpList = ftpnodes.item(i);
                System.out.println(ftpList.getTextContent());
            }
            for(int i=0;i<ftpnodes.getLength();i++)
            {
                Node ftpList = ftpnodes.item(i);
                ftpList.setTextContent(ftpList.getTextContent()+" update");
            }
        }
        writeXML(document,"E:\\testFiles\\test2.xml");
         
     }catch (Exception e) {
        e.printStackTrace();
     
 }
  
  
 public static void main(String[] args)
 {
     //read
     readXML();
     //write
     //writeXML(document,"E:\\testFiles\\test.xml");
     //update
     updateXML();
 }
}
原创粉丝点击