DOM4J操作XML

Posted rocker-pg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DOM4J操作XML相关的知识,希望对你有一定的参考价值。

创建XML


 1 /**   
 2     * @Description: 创建XML文件
 3     * @author 112  
 4     * @date 2018年3月28日 下午2:13:36 
 5     */
 6     @Test
 7     public void createXML(){
 8         //创建XML元素
 9         Document document = DocumentHelper.createDocument();
10         Element rootElement = document.addElement("XML创建_根节点");
11         rootElement.addElement("XML创建_子节点一").addText("子节点一_文本");
12         rootElement.addElement("XML创建_子节点二").addAttribute("子节点二_属性", "我是属性二");
13         rootElement.addElement("XML创建_子节点三").addAttribute("子节点三_属性", "我是属性三").addText("子节点三_文本");
14         
15         try {
16             //创建输出流
17             OutputStream outputStream = new FileOutputStream("src/cn/rocker/xml/write.xml");
18             //格式化输出的XML格式
19             OutputFormat format = OutputFormat.createPrettyPrint();
20             XMLWriter writer = new XMLWriter(outputStream, format);
21             writer.write(document);
22             writer.close();
23             outputStream.close();
24         } catch (Exception e) {
25             e.printStackTrace();
26         }
27     }
1 <?xml version="1.0" encoding="UTF-8"?>
2 
3 <XML创建_根节点>
4   <XML创建_子节点一>子节点一_文本</XML创建_子节点一>
5   <XML创建_子节点二 子节点二_属性="我是属性二"/>
6   <XML创建_子节点三 子节点三_属性="我是属性三">子节点三_文本</XML创建_子节点三>
7 </XML创建_根节点>

 

 

 解析XML


 1 /**   
 2     * @Description: 解析XML文件
 3     * @author czc   
 4     * @date 2018年3月28日 下午3:52:29 
 5     */
 6     @Test
 7     public void parseXML(){
 8         SAXReader reader = new SAXReader();
 9         try {
10             Document document = reader.read("src/cn/rocker/xml/parse.xml");
11             Element rootElement = document.getRootElement();
12             List<Element> elements = rootElement.elements();
13             
14             Element element1 = elements.get(2);
15             System.out.println(element1.attributeValue("name"));
16             
17             System.out.println(rootElement.attributeValue("id"));
18         } catch (Exception e) {
19             e.printStackTrace();
20         }
21     }
1 <?xml version="1.0" encoding="UTF-8"?>
2 <bean id="masterDataSource" parent="parentDataSource">
3         <property name="driverClass" value="com.mysql.jdbc.Driver" />
4         <property name="jdbcUrl" value="jdbc:mysql://192.168.166.154:3306/iisp_prod_zj" />
5         <property name="username" value="root" />
6         <property name="password" value="root" />
7 </bean>

 

 

XML和String互相转换


 1 /**   
 2     * @Description: XML和String相互转换
 3     * @author czc   
 4     * @date 2018年3月28日 下午4:10:47 
 5     */
 6     @Test
 7     public void convertXML2String(){
 8         SAXReader reader = new SAXReader();
 9         try {
10             Document document = reader.read("src/cn/rocker/xml/parse.xml");
11             
12             //将Document对象转为String
13             String strXML = document.asXML();
14             System.out.println(strXML);
15         } catch (DocumentException e) {
16             e.printStackTrace();
17         }
18     }
 1 /**   
 2     * @Description: XML和String相互转换
 3     * @author czc   
 4     * @date 2018年3月28日 下午4:26:05 
 5     */
 6     @Test
 7     public void convertString2XML(){
 8         StringBuilder sb = new StringBuilder();
 9         sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
10         sb.append("<bean id=\"masterDataSource\" parent=\"parentDataSource\">");
11         sb.append("<property name=\"driverClass\" value=\"com.mysql.jdbc.Driver\"/>");
12         sb.append("<property name=\"jdbcUrl\" value=\"jdbc:mysql://192.168.166.154:3306/iisp_prod_zj\"/>");
13         sb.append("<property name=\"username\" value=\"root\"/>");
14         sb.append("<property name=\"password\" value=\"root\"/>");
15         sb.append("</bean>");
16         String text = sb.toString();
17         
18         //将String转为Document
19         try {
20             Document document = DocumentHelper.parseText(text);
21             System.out.println(document.getRootElement().getName());
22         } catch (DocumentException e) {
23             e.printStackTrace();
24         }
25     }

 

以上是关于DOM4J操作XML的主要内容,如果未能解决你的问题,请参考以下文章

使用 Dom4j 对XML操作!!!

解析和操作XML文件

XML——XML解析之DOM4J

Java操作XML牛逼利器JDOM&DOM4J

XML文件操作之dom4j

XML编程总结——使用dom4j方式操作xml