package cn.liuning.test;

 import java.io.File;
import java.io.IOException; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult; import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList; public class Demo1
{ @Test//dom生成XML文档
public void createdXmlbyDom() throws ParserConfigurationException, TransformerException
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
//加入根结点
Element rootElement = document.createElement("xml");
//新建子结点
Element toUserName = document.createElement("ToUserName");
//设置属性
toUserName.setAttribute("id", "id_1");
//设置内容
String str = "<![CDATA[gh_1c586f95bd68]]>";
toUserName.setTextContent(str);
Element fromUserName = document.createElement("FromUserName");
fromUserName.setAttribute("id", "id_2");
String str1 = "<![CDATA[ogNtkuMTj4uOx-DCvLfu8mUDmubM]]>";
fromUserName.setTextContent(str1); Element createTime = document.createElement("CreateTime");
createTime.setAttribute("id", "id_2");
String str2 = "1403313142";
createTime.setTextContent(str2); Element createTime1 = document.createElement("CreateTime");
createTime1.setAttribute("id", "id_2");
String str3 = "Test";
createTime1.setTextContent(str3); rootElement.appendChild(toUserName);
rootElement.appendChild(fromUserName);
rootElement.appendChild(createTime);
rootElement.appendChild(createTime1); document.appendChild(rootElement); TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
Source xmlSource = new DOMSource(document); Result outputTarget = new StreamResult(new File("src/book1.xml"));
transformer.transform(xmlSource, outputTarget);
System.out.println("成功");
}
@Test//dom解析XML文档
public void read() throws ParserConfigurationException, Exception, IOException
{
//1.新建工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//2.得到dom解析器
DocumentBuilder builder = factory.newDocumentBuilder();
//3.得到代表文档的document上
Document document = builder.parse("src/book1.xml"); System.out.println(document.getInputEncoding());//得到文档编码 //通过标签名获取标签,得到的是一个list集合
//NodeList list = document.getElementsByTagName("CreateTime");
NodeList list = document.getElementsByTagName("xml"); //常用方法
System.out.println(list.getLength());//可以输出list的长度
Node node = list.item(0); //得到第几个结点 //node方法
System.out.println(node.getNodeName());//得到结点名称,输出CreateTime
System.out.println(node.hasAttributes());//是否有属性,输出true
System.out.println(node.hasChildNodes());//是否有孩子,输出true
String content = node.getTextContent();//获取结点内容
System.out.println(content); }
}

DOM生成XML文档与解析XML文档(JUNIT测试)的更多相关文章

  1. Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件,封装函数

    总结了一下使用Python对xml文件的解析,用到的模块儿如下: 分别从xml字符串和xml文件转换为xml对象,然后解析xml内容,查询指定信息字段. from xml.dom.minidom im ...

  2. webservice04#对象与xml转换-jaxb#Stax解析xml#新建修改xml

    1,Student类 package com.yangw.xml; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement / ...

  3. 遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件

    XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...

  4. Java xml 操作(Dom4J修改xml   + xPath技术  + SAX解析 + XML约束)

    1 XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的"数据库" 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大 ...

  5. CSS控制XML与通过js解析xml然后通过html显示xml中的数据

    使用CSS控制XML的显示 book.css bookname{ display:block;color:Red} author{ display:block;font-style:italic} p ...

  6. java解析xml(使用jdom解析xml)

    第一步: 装入jar包:下载地址:http://www.jdom.org/downloads/index.html 第二步: 在项目中加入jar包 jdom-2.06.jar 放入lib中 第三步: ...

  7. XML专题:使用NSXMLParser解析xml文件

    使用NSXMLParser解析xml文件 1. 设置委托对象,开始解析     NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data ...

  8. applicationContext.xml文件放置位置不同而导致的jUnit测试的时候路径的不同

    如果applicationContext.xml文件放置在src下面的的时候使用jUint测试的时候编写的路径应该是这样的: @Test public void testFindByPage() { ...

  9. 转:applicationContext.xml文件放置位置不同而导致的jUnit测试的时候路径的不同

    如果applicationContext.xml文件放置在src下面的的时候使用jUint测试的时候编写的路径应该是这样的: @Test public void saveTest() { Applic ...

随机推荐

  1. asp.net MVC dropList 绑定

    废话我就不多说了..上个图.给自己备忘一下

  2. macOS10.12允许所有来源设置

    如何调出允许所有来源呢? 很简单一行命令搞定 调出允许所有来源 1.打开终端执行命令 sudo spctl --master-disable 2.你在打开偏好设置--> 安全与隐私   好了赶快 ...

  3. 【CSS3】---@font-face

  4. php读取mysql中文数据出现乱码

    1.PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库了:    解决方法:选择'UTF8'或者'gb2312',这样客户浏览器会自动选择并出现正确的中文显示. ...

  5. jquery实现简单的ajax

    -->html页 1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...

  6. Android数据库之SQLite数据库

    Android数据库之SQLite数据库 导出查看数据库文件 在android中,为某个应用程序创建的数据库,只有它可以访问,其它应用程序是不能访问的,数据库位于Android设备/data/data ...

  7. Model Builder中Table2Table中字段映射的问题

    ArcGIS10中使用过程中,Bug不少.尽管有了SP3,但模型耦合的深层次的应用中还是错误不少.目前只是遇到一个,利用躲避的方法解决一个.例如,从NetCDF中抽出的数据表,必须在内存和数据库中都存 ...

  8. 各个公司的来源/The etymology of company

    1.List of Company Etymology 下面的维基百科词条是比较有名的一些公司的名称的来源 List of company name etymologies 2.Atmel : adv ...

  9. [windows phone开发]新生助手的开发过程与体会一

    功能需求分析: 1.  为到达学院的新生指路,给出所有路线,并给出必要提示: 2.  对学院建筑进行介绍: 3.  对学院周边环境(交通.购物.银行等)进行介绍: 4.  必要的应用设置 总体设计: ...

  10. 【Qt】Qt之Tab键切换焦点顺序【转】

    简介 Qt的窗口部件按用户的习惯来处理键盘焦点.也就是说,其出发点是用户的焦点能定向到任何一个窗口,或者窗口中任何一个部件. 焦点获取方式比较多,例如:鼠标点击.Tab键切换.快捷键.鼠标滚轮等. 习 ...