Posted on 2009-06-30 11:22
周竞先 阅读(2650)
评论(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!