JDOM修改XML中指定節(jié)點(diǎn)的內(nèi)容
Posted on 2009-06-30 11:22 周競(jìng)先 閱讀(2663) 評(píng)論(0) 編輯 收藏 所屬分類: xml 1 package com.potevio.telecom.test;
2
3 //IO異常處理相關(guān)類
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.IOException;
7
8 //JDOM處理相關(guān)類
9 import org.jdom.Document;
10 import org.jdom.Element;
11 import org.jdom.JDOMException;
12 import org.jdom.input.SAXBuilder;
13
14 //單元測(cè)試類
15 import junit.framework.TestCase;
16
17 /**
18 * JDOM修改XML中指定節(jié)點(diǎn)的內(nèi)容
19 * @author Zhou-Jingxian
20 *
21 */
22 public class TestUpdateXML extends TestCase {
23
24 public void testJdomUpdateXML(){
25
26 //要解析的文件
27 String xmlURL = "F:\\test_update.xml";
28
29 //指定修改的第二級(jí)節(jié)點(diǎn)名稱
30 String secondNodeName = "file_download_url";
31
32 //文檔對(duì)象
33 Document myDoc = null;
34
35 try{
36 //解析器
37 SAXBuilder sb = new SAXBuilder();
38
39 //文檔賦值
40 myDoc = sb.build(new FileInputStream(xmlURL));
41
42 }catch(JDOMException e){
43 e.printStackTrace();
44 }catch(NullPointerException e){
45 e.printStackTrace();
46 } catch (FileNotFoundException e) {
47 e.printStackTrace();
48 } catch (IOException e) {
49 e.printStackTrace();
50 }
51
52 //根元素
53 Element root = myDoc.getRootElement();
54
55 //第一級(jí)節(jié)點(diǎn)
56 Element page = root.getChild("page");
57
58 //測(cè)試用的指定節(jié)點(diǎn)修改前原內(nèi)容
59 String secondNodeValue = page.getChild(secondNodeName).getText();
60 System.out.println("before update value:"+secondNodeValue);
61
62 //修改內(nèi)容
63 page.getChild(secondNodeName).setText("http://localhost:8000/yyoa/download/
");
64
65 //測(cè)試用的指定節(jié)點(diǎn)修改后的內(nèi)容
66 secondNodeValue = page.getChild(secondNodeName).getText();
67 System.out.println("after update value:"+secondNodeValue);
68
69 }
70
71 /**
72 * F:\\test_update.xml內(nèi)容如下:
73 * <?xml version="1.0" encoding="UTF-8"?>
74 * <MobileNet>
75 * <page name="測(cè)試用">
76 * <method>get</method>
77 * <display>content</display>
78 * <file_url>通過(guò)參數(shù)傳遞過(guò)來(lái)的一個(gè)連接地址,附件所在頁(yè)面的地址</file_url>
79 * <file_download_url>先不設(shè)置,通過(guò)正則解析處理之后得到最后的下載地址之后才設(shè)置進(jìn)來(lái)值</file_download_url>
80 * <file_analysis_formula>onclick="downloadFile\('([^']*)','([^']*)','([^']*)','([^']*)'\)"</file_analysis_formula>
81 * </page>
82 * </MobileNet>
83 */
84 }
85
86
2
3 //IO異常處理相關(guān)類
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.IOException;
7
8 //JDOM處理相關(guān)類
9 import org.jdom.Document;
10 import org.jdom.Element;
11 import org.jdom.JDOMException;
12 import org.jdom.input.SAXBuilder;
13
14 //單元測(cè)試類
15 import junit.framework.TestCase;
16
17 /**
18 * JDOM修改XML中指定節(jié)點(diǎn)的內(nèi)容
19 * @author Zhou-Jingxian
20 *
21 */
22 public class TestUpdateXML extends TestCase {
23
24 public void testJdomUpdateXML(){
25
26 //要解析的文件
27 String xmlURL = "F:\\test_update.xml";
28
29 //指定修改的第二級(jí)節(jié)點(diǎn)名稱
30 String secondNodeName = "file_download_url";
31
32 //文檔對(duì)象
33 Document myDoc = null;
34
35 try{
36 //解析器
37 SAXBuilder sb = new SAXBuilder();
38
39 //文檔賦值
40 myDoc = sb.build(new FileInputStream(xmlURL));
41
42 }catch(JDOMException e){
43 e.printStackTrace();
44 }catch(NullPointerException e){
45 e.printStackTrace();
46 } catch (FileNotFoundException e) {
47 e.printStackTrace();
48 } catch (IOException e) {
49 e.printStackTrace();
50 }
51
52 //根元素
53 Element root = myDoc.getRootElement();
54
55 //第一級(jí)節(jié)點(diǎn)
56 Element page = root.getChild("page");
57
58 //測(cè)試用的指定節(jié)點(diǎn)修改前原內(nèi)容
59 String secondNodeValue = page.getChild(secondNodeName).getText();
60 System.out.println("before update value:"+secondNodeValue);
61
62 //修改內(nèi)容
63 page.getChild(secondNodeName).setText("http://localhost:8000/yyoa/download/

64
65 //測(cè)試用的指定節(jié)點(diǎn)修改后的內(nèi)容
66 secondNodeValue = page.getChild(secondNodeName).getText();
67 System.out.println("after update value:"+secondNodeValue);
68
69 }
70
71 /**
72 * F:\\test_update.xml內(nèi)容如下:
73 * <?xml version="1.0" encoding="UTF-8"?>
74 * <MobileNet>
75 * <page name="測(cè)試用">
76 * <method>get</method>
77 * <display>content</display>
78 * <file_url>通過(guò)參數(shù)傳遞過(guò)來(lái)的一個(gè)連接地址,附件所在頁(yè)面的地址</file_url>
79 * <file_download_url>先不設(shè)置,通過(guò)正則解析處理之后得到最后的下載地址之后才設(shè)置進(jìn)來(lái)值</file_download_url>
80 * <file_analysis_formula>onclick="downloadFile\('([^']*)','([^']*)','([^']*)','([^']*)'\)"</file_analysis_formula>
81 * </page>
82 * </MobileNet>
83 */
84 }
85
86
輸出結(jié)果:
1 before update value:先不設(shè)置,通過(guò)正則解析處理之后得到最后的下載地址之后才設(shè)置進(jìn)來(lái)值
2 after update value:http://localhost:8000/yyoa/download/
3
2 after update value:http://localhost:8000/yyoa/download/

3
Life,simple and happy!