Posted on 2009-06-30 11:22
周競先 閱讀(2661)
評論(0) 編輯 收藏 所屬分類:
xml
1 package com.potevio.telecom.test;
2
3 //IO異常處理相關類
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.IOException;
7
8 //JDOM處理相關類
9 import org.jdom.Document;
10 import org.jdom.Element;
11 import org.jdom.JDOMException;
12 import org.jdom.input.SAXBuilder;
13
14 //單元測試類
15 import junit.framework.TestCase;
16
17 /**
18 * JDOM修改XML中指定節點的內容
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 //指定修改的第二級節點名稱
30 String secondNodeName = "file_download_url";
31
32 //文檔對象
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 //第一級節點
56 Element page = root.getChild("page");
57
58 //測試用的指定節點修改前原內容
59 String secondNodeValue = page.getChild(secondNodeName).getText();
60 System.out.println("before update value:"+secondNodeValue);
61
62 //修改內容
63 page.getChild(secondNodeName).setText("http://localhost:8000/yyoa/download/
");
64
65 //測試用的指定節點修改后的內容
66 secondNodeValue = page.getChild(secondNodeName).getText();
67 System.out.println("after update value:"+secondNodeValue);
68
69 }
70
71 /**
72 * F:\\test_update.xml內容如下:
73 * <?xml version="1.0" encoding="UTF-8"?>
74 * <MobileNet>
75 * <page name="測試用">
76 * <method>get</method>
77 * <display>content</display>
78 * <file_url>通過參數傳遞過來的一個連接地址,附件所在頁面的地址</file_url>
79 * <file_download_url>先不設置,通過正則解析處理之后得到最后的下載地址之后才設置進來值</file_download_url>
80 * <file_analysis_formula>onclick="downloadFile\('([^']*)','([^']*)','([^']*)','([^']*)'\)"</file_analysis_formula>
81 * </page>
82 * </MobileNet>
83 */
84 }
85
86
輸出結果:
1 before update value:先不設置,通過正則解析處理之后得到最后的下載地址之后才設置進來值
2 after update value:http://localhost:8000/yyoa/download/
3
Life,simple and happy!