漂在爪洼岛上

Java is my life,but not all!
posts - 3, comments - 6, trackbacks - 0, articles - 9
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

JDOM修改XML中指定节点的内容

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!


只有注册用户登录后才能发表评论。


网站导航: