Dom4j向XML中增加节点与属性——(四)

先获取到节点,然后在节点山添加Element     添加节点           添加属性                     设置开始标签与结束标签的值book.addElement("描述").addAttribute("name", "xxxxxx").setText("一本好书!");

解决中文乱码问题:

  输出流最好用字节流(Stream),字节流可以控制编码格式,Writer是字符流。

  如果xml中编码是utf-8,格式器也用utf-8。格式器与xml文档的编码格式要一致。

 1 package Dom4j_XMLParser;
 2
 3 import java.io.File;
 4 import java.io.FileOutputStream;
 5 import java.io.FileWriter;
 6
 7 import org.dom4j.Attribute;
 8 import org.dom4j.Document;
 9 import org.dom4j.DocumentException;
10 import org.dom4j.Element;
11 import org.dom4j.io.OutputFormat;
12 import org.dom4j.io.SAXReader;
13 import org.dom4j.io.XMLWriter;
14 import org.junit.Test;
15
16 public class Demo2 {
17
18     // 在第一本书后增加一个 <描述 name="xxxxxx">一本好书!</描述>
19     @Test
20     public void test1() throws Exception {
21         // 创建SAX读取器
22         SAXReader reader = new SAXReader();
23         // 加载文档
24         Document document = reader.read(new File("src/book.xml"));
25         // 获取根节点(书架)
26         Element root = document.getRootElement();
27         // 获取根节点下的书节点,带s返回一个数组,再取数组的第二个
28         Element book = (Element) root.elements("书").get(0);
29         // 获取树下面的书名属性
30         book.addElement("描述").addAttribute("name", "xxxxxx").setText("一本好书!");
31
32 //        格式化输出流,同时指定编码格式。也可以在FileOutputStream中指定。
33         OutputFormat format = OutputFormat.createPrettyPrint();
34         format.setEncoding("utf-8");
35
36         XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);
37         writer.write(document);
38         writer.close();
39     }
40
41 }

结果:

时间: 2024-08-29 02:38:19

Dom4j向XML中增加节点与属性——(四)的相关文章

XPath可以快速定位到Xml中的节点或者属性。XPath语法很简单,但是强大够用,它也是使用xslt的基础知识。

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 <?xml version="1.0" encoding="utf-8" ?> <pets>   <cat color="black" weight="10">     <price>100</price>    

C#实现,xml中相同节点不同属性的创建

具体要实现的功能如下: <addresslist> <linkman> <name chen="demo">chen</name> <name chen="demo1" /> <email>[email protected]</email> </linkman></addresslist> 所示的xml文件. 一开始搜索C#方面的xml操作,网上的信息太少.最

[Java] 通过XPath获取XML中某个节点的属性

public String getPAUrl(){ String PAUrl = ""; try { String filePath = System.getProperty ("user.dir").toString()+"/src/test/resources/config/environment.xml"; logger.info("The path of environment.xml is : "+filePath)

SpringMVC项目中web.xml中的节点加载顺序问题

SpringMVC项目中web.xml中的节点加载顺序问题,之前以为web.xml中就是一些配置信息,和节点的顺序没有关系,后来才发现初始化时的加载顺序是和节点的顺序相关的. 完整的web.xml文件内容: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=&quo

DOM中元素节点、属性节点、文本节点的理解

转自:http://www.cnblogs.com/dh616854836/archive/2011/08/14/2138038.html 节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是: nodeName(节点名称) nodeValue(节点值) nodeType(节点类型) nodeType nodeType 属性可返回节点的类型. 最重要的节点类型是: 元素类型 节点类型 元素 1 属性 2 文本 3 注释 8 文档 9 在实际应用中,经常用到的就是元素节点.属性节点和文

DOM中元素节点,属性节点,文本节点的理解

节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是: nodeName(节点名称) nodeValue(节点值) nodeType(节点类型) nodeType nodeType 属性可返回节点的类型. 最重要的节点类型是: 元素类型 节点类型 元素 1 属性 2 文本 3 注释 8 文档 9 在实际应用中,经常用到的就是元素节点.属性节点和文本节点了,下面我们通过小段代码进行讲解 1:元素节点 <HEAD> <TITLE>空谷悠悠</TITLE> <

DOM中元素节点、属性节点、文本节点的理解13.3

节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是:nodeName(节点名称) nodeValue(节点值) nodeType(节点类型) nodeType nodeType 属性可返回节点的类型. 最重要的节点类型是: 元素类型 节点类型 元素(ELEMENT_NODE) 1 属性(ATTRIBUTE_NODE) 2 文本(TEXT_NODE) 3 注释(COMMENT_NODE) 8 文档(DOCUMENT_NODE) 9 在实际应用中,经常用到的就是元素节点.属性节点和文本

DOM中元素节点、属性节点、文本节点

DOM中有12中节点,但最常用到的是元素节点,属性节点,文本节点. 元素节点的节点类型(nodeType)是1: 属性节点的节点类型(nodeType)是2: 文本节点的节点类型(nodeType)是3. 元素节点的 nodeName 是标签名称属性节点的 nodeName 是属性名称文本节点的 nodeName 永远是 #text 对于文本节点,nodeValue 属性包含文本. 对于属性节点,nodeValue 属性包含属性值. nodeValue 属性对于文档节点和元素节点是不可用的. n

HTTP头中增加自定义的属性然后post请求第三方的页面

场景是这样的,第三方页面访问需要鉴权,所以需要在HTTP头中增加鉴权的属性和内容发送给第三方网页. 我试过用response.addHeader("Authorization","xxxxxxxxx")方法,但发送的请求还是不带Authorization属性,还请大牛们不吝指教. 你这个问题实际上是服务器访问第三方鉴权系统,这个访问过程和客户端没关系的 和response,request都没关系 是要在服务器端模拟http请求,在这个请求里面增加自定义header用