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. 浅谈iOS的Autolayout

    iOS 应用,通常是以界面(UI: User Interface)展示给用户. 没有界面的应用,对用户来说,将无所适从,总不至于罗列出一堆说明书吧. iOS开发,很大一部分工作量都花在界面布局上,有时 ...

  2. Linux 进程管理子系统

    一.进程管理子系统 1.进程要素 (1). 程序与进程 程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体 进程:是一个执行中的程序,他是一个动态的实体. (2). 进程4要素 1.有 ...

  3. JS 数组乱序

    因为不想在后台操作,就使用js进行 涉及到了一个打乱数组顺序的方法 百度到的一篇 Author : Jun.lu http://www.cnblogs.com/idche/archive/2010/0 ...

  4. Web 网页常见问题集锦

    1.如何去掉Chrome记住密码后自动填充表单的黄色背景 不知道大家有没有这样的烦恼,在Chrome浏览器中,记住密码后重新填写表单数据时,自动会有黄色背景的出现.(如图a) 图a 而出现这个黄色背景 ...

  5. JavaScript--基本包装类型(13)

    // JS为了便于操作基本类型,提供了3个特殊的引用类型:Boolean/Number和String; 一 基本包装类型概述 // 实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装 ...

  6. C#之父 Anders Hejlsberg

             Anders Hejlsberg (born December 1960)[2] is a prominent Danish software engineer who co-des ...

  7. DOS批处理命令-for语句

    for是为了循环执行一系列命令而执行的命令语句. for要处理的内容不同,语法结构稍有不同.下面就各种情形来分别 1.基本的语法:FOR %変数 IN (set) DO 命令 [参数] 语法内容解析: ...

  8. Shell脚本报错unary operator expected

    在匹配字符串时用了类似这样的语句 if[ $timeofday = "yes"]; then echo "Good morning" exit 0 报错的原因是 ...

  9. SDWebImage缓存清理

    //计算缓存大小 [SDImageCache sharedImageCache] getSize] //清理缓存 SDImageCache *sd = [[SDImageCache alloc]ini ...

  10. NSString字符操作

    1.常用创建初始化方法 1.NSString *string0 = @"string"; 2.NSString *string1 = [NSString stringWithFor ...