锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
2
3 //IO寮傚父澶勭悊鐩稿叧綾?/span>
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.IOException;
7
8 //JDOM澶勭悊鐩稿叧綾?/span>
9 import org.jdom.Document;
10 import org.jdom.Element;
11 import org.jdom.JDOMException;
12 import org.jdom.input.SAXBuilder;
13
14 //鍗曞厓嫻嬭瘯綾?/span>
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 //瑙f瀽鍣?/span>
37 SAXBuilder sb = new SAXBuilder();
38
39 //鏂囨。璧嬪?/span>
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 //鏍瑰厓绱?/span>
53 Element root = myDoc.getRootElement();
54
55 //絎竴綰ц妭鐐?/span>
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鍐呭濡備笅錛?br />
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>鍏堜笉璁劇疆錛岄氳繃姝e垯瑙f瀽澶勭悊涔嬪悗寰楀埌鏈鍚庣殑涓嬭澆鍦板潃涔嬪悗鎵嶈緗繘鏉ュ?lt;/file_download_url>
80 * <file_analysis_formula>onclick="downloadFile\('([^']*)','([^']*)','([^']*)','([^']*)'\)"</file_analysis_formula>
81 * </page>
82 * </MobileNet>
83 */
84 }
85
86
杈撳嚭緇撴灉錛?br />
3
]]>
2
3 //鏂囦歡綾?/span>
4 import java.io.File;
5
6 //鏂囦歡杈撳嚭綾?/span>
7 import java.io.FileOutputStream;
8
9 //璐熻矗瑙f瀽鐨勭被
10 import javax.xml.parsers.DocumentBuilder;
11 import javax.xml.parsers.DocumentBuilderFactory;
12 //鏄犲皠綾?/span>
13 import javax.xml.transform.Transformer;
14 import javax.xml.transform.TransformerFactory;
15
16 //xml鏄犲皠杈撳叆鍜岃緭鍑虹被
17 import javax.xml.transform.dom.DOMSource;
18 import javax.xml.transform.stream.StreamResult;
19
20 //鑺傜偣綾?/span>
21 import org.w3c.dom.Document;
22 import org.w3c.dom.Element;
23
24 /**
25 * @description 浣跨敤DOM鍒涘緩綆鍗曠殑XML
26 *
27 * @author Zhou-Jingxian
28 *
29 * @date Jun 19, 2009
30 *
31 */
32 public class CreateRuleXML {
33
34 public static void main(String[] args) {
35
36 try{
37 //瑙f瀽鍣ㄥ伐鍘傜被
38 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
39
40 //瑙f瀽鍣?/span>
41 DocumentBuilder builder = factory.newDocumentBuilder();
42
43 //鎿嶄綔鐨凞ocument瀵硅薄
44 Document document = builder.newDocument();
45
46 //璁劇疆XML鐨勭増鏈?/span>
47 document.setXmlVersion("1.0");
48
49 //鍒涘緩鏍硅妭鐐?/span>
50 Element root = document.createElement("MobileNet");
51
52 //灝嗘牴鑺傜偣娣誨姞鍒癉ocument瀵硅薄涓?/span>
53 document.appendChild(root);
54
55 /**the first page*/
56 //璁劇疆絎竴涓猵age鍏冪礌鍒?/span>
57 Element pageElement = document.createElement("page");
58
59 //璁劇疆page鑺傜偣鐨刵ame灞炴?/span>
60 pageElement.setAttribute("name", "list.jsp");
61
62 /**method*/
63 //璁劇疆method鑺傜偣
64 Element methodElement = document.createElement("method");
65
66 //緇檓ethod璁劇疆鍊?/span>
67 methodElement.setTextContent("get");
68
69 //娣誨姞method鑺傜偣鍒皃age鑺傜偣鍐?/span>
70 pageElement.appendChild(methodElement);
71
72 /**display*/
73 //璁劇疆method鑺傜偣
74 Element displayElement = document.createElement("display");
75
76 //緇檇isplay璁劇疆鍊?/span>
77 displayElement.setTextContent("list");
78
79 //娣誨姞display鑺傜偣鍒皃age鑺傜偣鍐?/span>
80 pageElement.appendChild(displayElement);
81
82 /**request_param*/
83 //璁劇疆request_param鑺傜偣
84 Element request_paramElement = document.createElement("request_param");
85
86 //緇檙equest_param璁劇疆鍊?/span>
87 request_paramElement.setTextContent("request_param1|request_param2");
88
89 //娣誨姞request_param鑺傜偣鍒皃age鑺傜偣鍐?/span>
90 pageElement.appendChild(request_paramElement);
91
92 //灝唒age孌靛姞浜烘牴鑺傜偣鍐?/span>
93 root.appendChild(pageElement);
94
95
96 /**the second page*/
97 //璁劇疆絎簩涓猵age鍏冪礌鍒?/span>
98 pageElement = document.createElement("page");
99
100 //璁劇疆page鑺傜偣鐨刵ame灞炴?/span>
101 pageElement.setAttribute("name", "content.jsp");
102
103 /**method*/
104 //璁劇疆method鑺傜偣
105 methodElement = document.createElement("method");
106
107 //緇檓ethod璁劇疆鍊?/span>
108 methodElement.setTextContent("post");
109
110 //娣誨姞method鑺傜偣鍒皃age鑺傜偣鍐?/span>
111 pageElement.appendChild(methodElement);
112
113 /**display*/
114 //璁劇疆method鑺傜偣
115 displayElement = document.createElement("display");
116
117 //緇檇isplay璁劇疆鍊?/span>
118 displayElement.setTextContent("content");
119
120 //娣誨姞display鑺傜偣鍒皃age鑺傜偣鍐?/span>
121 pageElement.appendChild(displayElement);
122
123 /**url_title*/
124 //璁劇疆url_title鑺傜偣
125 Element url_titleElement = document.createElement("url_title");
126
127 //緇檜rl_title璁劇疆鍊?/span>
128 url_titleElement.setTextContent("title,publisher,published_calendar");
129
130 //娣誨姞url_title鑺傜偣鍒皃age鑺傜偣鍐?/span>
131 pageElement.appendChild(url_titleElement);
132
133 //灝唒age孌靛姞浜烘牴鑺傜偣鍐?/span>
134 root.appendChild(pageElement);
135
136
137 //寮濮嬫妸Document鏄犲皠鍒版枃浠?/span>
138 TransformerFactory transFactory = TransformerFactory.newInstance();
139 Transformer transFormer = transFactory.newTransformer();
140
141 //璁劇疆杈撳嚭緇撴灉
142 DOMSource domSource = new DOMSource(document);
143
144 //鐢熸垚xml鏂囦歡
145 File file = new File("MobileNetRule.xml");
146
147 //鍒ゆ柇鏄惁瀛樺湪,濡傛灉涓嶅瓨鍦?鍒欏垱寤?/span>
148 if(!file.exists()){
149 file.createNewFile();
150 }
151
152 //鏂囦歡杈撳嚭嫻?/span>
153 FileOutputStream out = new FileOutputStream(file);
154
155 //璁劇疆杈撳叆婧?/span>
156 StreamResult xmlResult = new StreamResult(out);
157
158 //杈撳嚭xml鏂囦歡
159 transFormer.transform(domSource, xmlResult);
160
161 //嫻嬭瘯鏂囦歡杈撳嚭鐨勮礬寰?/span>
162 System.out.println(file.getAbsolutePath());
163
164 }catch(Exception e){
165 e.printStackTrace();
166
167 }finally{
168
169 }
170 }
171
172 }
173
榪愯鎵撳嵃鐨勫湴鍧:
D:\MyEclipse 6.0\workspace\WriteAndReadXML\MobileNetRule.xml
灝嗕笂闈㈢殑鍦板潃杈撳叆鍒?IE)鍦板潃鏍?寰楀埌濡備笅鎴浘:
]]>
2
3 //鏂囦歡綾?/span>
4 import java.io.File;
5
6 //璐熻矗瑙f瀽鐨勭被
7 import javax.xml.parsers.DocumentBuilder;
8 import javax.xml.parsers.DocumentBuilderFactory;
9
10 //鑺傜偣綾?/span>
11 import org.w3c.dom.Document;
12 import org.w3c.dom.NodeList;
13
14 /**
15 * @description 瑙f瀽"鍖椾含鍒伴暱娌欑殑綆鍗曞垪杞︽椂鍒昏〃"淇℃伅
16 *
17 * @author Zhou-Jingxian
18 *
19 * @date Jun 18, 2009
20 *
21 */
22 public class ParserXML {
23
24 public static void main(String[] args) {
25
26 try{
27 //闇瑕佽В鏋愮殑鏂囦歡
28 File file = new File("鍖椾含鍒伴暱娌欑伀杞︽椂鍒昏〃.xml");
29
30 //瑙f瀽鍣ㄥ伐鍘傜被
31 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
32
33 //瑙f瀽鍣?/span>
34 DocumentBuilder builder = factory.newDocumentBuilder();
35
36 //鎿嶄綔鐨凞ocument瀵硅薄
37 Document document = builder.parse(file);
38
39 //鑺傜偣鍚嶇О
40 NodeList nodelist = document.getElementsByTagName("杞︽");
41
42 //瑙f瀽鍐呭
43 for(int i = 0; i<nodelist.getLength(); i++){
44 System.out.println("--------"+(i+1)+"---------");
45 System.out.println("杞︾被鍒?"+document.getElementsByTagName("杞︽").item(i).getAttributes().getNamedItem("綾誨埆").getNodeValue());
46 System.out.println("杞︽鍙?"+document.getElementsByTagName("鍚嶅瓧").item(i).getFirstChild().getNodeValue());
47 System.out.println("寮杞︽椂闂?"+document.getElementsByTagName("寮杞︽椂闂?/span>").item(i).getFirstChild().getNodeValue());
48
49 }
50 }catch(Exception e){
51 e.printStackTrace();
52
53 }finally{
54
55 }
56 }
57 }
58
榪愯緇撴灉濡備笅:
]]>