DOM4J操作XML
阿新 • • 發佈:2018-03-28
sys _屬性 根節點 int reat void AC end src
創建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