• DOM生成XML文档与解析XML文档(JUNIT测试)


     1 package cn.liuning.test;
     2 
     3 import java.io.File;
     4 import java.io.IOException;
     5 
     6 import javax.xml.parsers.DocumentBuilder;
     7 import javax.xml.parsers.DocumentBuilderFactory;
     8 import javax.xml.parsers.ParserConfigurationException;
     9 import javax.xml.transform.Result;
    10 import javax.xml.transform.Source;
    11 import javax.xml.transform.Transformer;
    12 import javax.xml.transform.TransformerException;
    13 import javax.xml.transform.TransformerFactory;
    14 import javax.xml.transform.dom.DOMSource;
    15 import javax.xml.transform.stream.StreamResult;
    16 
    17 import org.junit.Test;
    18 import org.w3c.dom.Document;
    19 import org.w3c.dom.Element;
    20 import org.w3c.dom.Node;
    21 import org.w3c.dom.NodeList;
    22 
    23 public class Demo1
    24 {
    25     
    26     @Test//dom生成XML文档
    27     public void createdXmlbyDom() throws ParserConfigurationException, TransformerException
    28     {
    29          DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
    30          DocumentBuilder builder = factory.newDocumentBuilder(); 
    31          Document document = builder.newDocument();
    32          //加入根结点
    33          Element rootElement = document.createElement("xml");  
    34          //新建子结点
    35          Element toUserName = document.createElement("ToUserName"); 
    36          //设置属性
    37          toUserName.setAttribute("id", "id_1");
    38          //设置内容
    39          String str = "<![CDATA[gh_1c586f95bd68]]>"; 
    40          toUserName.setTextContent(str);
    41          Element fromUserName = document.createElement("FromUserName");
    42          fromUserName.setAttribute("id", "id_2");
    43          String str1 = "<![CDATA[ogNtkuMTj4uOx-DCvLfu8mUDmubM]]>"; 
    44          fromUserName.setTextContent(str1);
    45 
    46          Element createTime = document.createElement("CreateTime");
    47          createTime.setAttribute("id", "id_2");
    48          String str2 = "1403313142"; 
    49          createTime.setTextContent(str2);
    50          
    51          Element createTime1 = document.createElement("CreateTime");
    52          createTime1.setAttribute("id", "id_2");
    53          String str3 = "Test"; 
    54          createTime1.setTextContent(str3);
    55          
    56          rootElement.appendChild(toUserName);
    57          rootElement.appendChild(fromUserName);
    58          rootElement.appendChild(createTime);
    59          rootElement.appendChild(createTime1);
    60          
    61          document.appendChild(rootElement); 
    62          
    63          TransformerFactory transformerFactory = TransformerFactory.newInstance();
    64          Transformer transformer = transformerFactory.newTransformer();
    65          Source xmlSource = new DOMSource(document);
    66 
    67          Result outputTarget = new StreamResult(new File("src/book1.xml"));  
    68          transformer.transform(xmlSource, outputTarget);
    69          System.out.println("成功");
    70     }
    71     @Test//dom解析XML文档
    72     public void read() throws ParserConfigurationException, Exception, IOException
    73     {
    74         //1.新建工厂        
    75         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    76         //2.得到dom解析器
    77         DocumentBuilder builder = factory.newDocumentBuilder();
    78         //3.得到代表文档的document上
    79         Document document =  builder.parse("src/book1.xml");    
    80 
    81         System.out.println(document.getInputEncoding());//得到文档编码
    82     
    83         //通过标签名获取标签,得到的是一个list集合
    84         //NodeList list = document.getElementsByTagName("CreateTime");
    85         NodeList list = document.getElementsByTagName("xml");
    86         
    87         //常用方法
    88         System.out.println(list.getLength());//可以输出list的长度
    89         Node node = list.item(0); //得到第几个结点
    90         
    91         //node方法
    92         System.out.println(node.getNodeName());//得到结点名称,输出CreateTime
    93         System.out.println(node.hasAttributes());//是否有属性,输出true
    94         System.out.println(node.hasChildNodes());//是否有孩子,输出true
    95         String content = node.getTextContent();//获取结点内容
    96         System.out.println(content);
    97 
    98     }
    99 }
  • 相关阅读:
    如何搭建环境---初识mybatis
    切片,元组,字典字,符串
    关于Linux安装的Python和miniconda
    认识Linux工具
    Linux下安装mysql
    Linux软件的安装
    关于Linux的简单介绍
    如果要做优化,CSS提高性能的方法有哪些?
    文本溢出显示省略号css
    响应式设计?响应式设计的基本原理是什么?如何做?
  • 原文地址:https://www.cnblogs.com/liun1994/p/3830154.html
Copyright © 2020-2023  润新知