久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

dom4j讀取xml(筆記)

Java代碼 

1.   

2. SAXReader reader = new SAXReader();    

3. Document doc = reader.read(…);    

4. List childNodes = doc.selectNodes(“//Config/Child/ChildNode”);    

5. for(Object obj:childNodes) {    

6. Node childNode = (Node)obj;    

7.   

8. String name = childNode.valueOf(“@name”);    

9. String text = childNode.getText();    

10. }    

11.   

12.   

13.   

14. 一.Document對象相關   

15.   

16. 1.讀取XML文件,獲得document對象.   

17.              SAXReader reader = new SAXReader();   

18.              Document   document = reader.read(new File(“input.xml”));   

19.   

20. 2.解析XML形式的文本,得到document對象.   

21.              String text = “<members></members>”;   

22.              Document document = DocumentHelper.parseText(text);   

23. 3.主動創建document對象.   

24.              Document document = DocumentHelper.createDocument();   

25.              Element root = document.addElement(“members”);// 創建根節點   

26. 二.節點相關   

27.   

28. 1.獲取文檔的根節點.   

29. Element rootElm = document.getRootElement();   

30. 2.取得某節點的單個子節點.   

31. Element memberElm=root.element(“member”);// “member”是節點名   

32. 3.取得節點的文字   

33. String text=memberElm.getText();也可以用:   

34. String text=root.elementText(“name”);這個是取得根節點下的name字節點的文字.   

35.   

36. 4.取得某節點下名為”member”的所有字節點并進行遍歷.   

37. List nodes = rootElm.elements(“member”);   

38.   

39. for (Iterator it = nodes.iterator(); it.hasNext();) {   

40.     Element elm = (Element) it.next();   

41.    // do something   

42. }   

43. 5.對某節點下的所有子節點進行遍歷.   

44.             for(Iterator it=root.elementIterator();it.hasNext();){   

45.                  Element element = (Element) it.next();   

46.                 // do something   

47.              }   

48. 6.在某節點下添加子節點.   

49. Element ageElm = newMemberElm.addElement(“age”);   

50. 7.設置節點文字.   

51. ageElm.setText(“29”);   

52. 8.刪除某節點.   

53. parentElm.remove(childElm);// childElm是待刪除的節點,parentElm是其父節點   

54. 9.添加一個CDATA節點.   

55.          Element contentElm = infoElm.addElement(“content”);   

56.          contentElm.addCDATA(diary.getContent());   

57.   

58. 三.屬性相關.   

59. 1.取得某節點下的某屬性   

60.              Element root=document.getRootElement();       

61.              Attribute attribute=root.attribute(“size”);// 屬性名name   

62. 2.取得屬性的文字   

63.              String text=attribute.getText();也可以用:   

64. String text2=root.element(“name”).attributeValue(“firstname”);這個是取得根節點下name字節點的屬性firstname的值.   

65.   

66. 3.遍歷某節點的所有屬性   

67.              Element root=document.getRootElement();       

68.             for(Iterator it=root.attributeIterator();it.hasNext();){   

69.                  Attribute attribute = (Attribute) it.next();   

70.                  String text=attribute.getText();   

71.                  System.out.println(text);   

72.              }   

73. 4.設置某節點的屬性和文字.   

74. newMemberElm.addAttribute(“name”, “sitinspring”);   

75. 5.設置屬性的文字   

76.              Attribute attribute=root.attribute(“name”);   

77.              attribute.setText(“sitinspring”);   

78. 6.刪除某屬性   

79.              Attribute attribute=root.attribute(“size”);// 屬性名name   

80.              root.remove(attribute);   

81. 四.將文檔寫入XML文件.   

82. 1.文檔中全為英文,不設置編碼,直接寫入的形式.   

83. XMLWriter writer = new XMLWriter(new FileWriter(“output.xml”));   

84. writer.write(document);   

85. writer.close();   

86. 2.文檔中含有中文,設置編碼格式寫入的形式.   

87.              OutputFormat format = OutputFormat.createPrettyPrint();   

88.              format.setEncoding(“GBK”);    // 指定XML編碼           

89.              XMLWriter writer = new XMLWriter(new FileWriter(“output.xml”),format);   

90.                

91.              writer.write(document);   

92.              writer.close();   

93. 五.字符串與XML的轉換   

94. 1.將字符串轉化為XML   

95. String text = “<members> <member>sitinspring</member> </members>”;   

96. Document document = DocumentHelper.parseText(text);   

97. 2.將文檔或節點的XML轉化為字符串.   

98.              SAXReader reader = new SAXReader();   

99.              Document   document = reader.read(new File(“input.xml”));               

100.              Element root=document.getRootElement();                   

101.              String docXmlText=document.asXML();   

102.              String rootXmlText=root.asXML();   

103.              Element memberElm=root.element(“member”);   

104.              String memberXmlText=memberElm.asXML();   

105.   

106.   

107.   

108.   

109. dom4j API 包含一個解析 XML 文檔的工具。本文中將使用這個解析器創建一個示例 XML 文檔。清單 1 顯示了這個示例 XML 文檔,catalog.xml。   

110.   

111. 清單 1. 示例 XML 文檔(catalog.xml)    

112. <?xml version=”1.0″ encoding=”UTF-8″?>    

113. <catalog>    

114. <!–An XML Catalog–>    

115. <?target instruction?>   

116.   <journal title=”XML Zone”    

117.                   publisher=”IBM developerWorks”>    

118. <article level=”Intermediate” date=”December-2001″>   

119.  <title>Java configuration with XML Schema</title>    

120.  <author>    

121.      <firstname>Marcello</firstname>    

122.      <lastname>Vitaletti</lastname>    

123.  </author>   

124.   </article>   

125.   </journal>    

126. </catalog>   

127.     

128.   

129.   

130. 然后使用同一個解析器修改 catalog.xml,清單 2 是修改后的 XML 文檔,catalog-modified.xml。   

131.   

132. 清單 2. 修改后的 XML 文檔(catalog-modified.xml)    

133. <?xml version=”1.0″ encoding=”UTF-8″?>    

134. <catalog>    

135. <!–An XML catalog–>    

136. <?target instruction?>   

137.   <journal title=”XML Zone”  

138.                    publisher=”IBM developerWorks”>    

139. <article level=”Introductory” date=”October-2002″>   

140.  <title>Create flexible and extensible XML schemas</title>    

141.  <author>    

142.      <firstname>Ayesha</firstname>    

143.      <lastname>Malik</lastname>    

144.  </author>    

145.   </article>   

146.   </journal>    

147. </catalog>   

148.     

149.   

150.   

151. 與 W3C DOM API 相比,使用 dom4j 所包含的解析器的好處是 dom4j 擁有本地的 XPath 支持。DOM 解析器不支持使用 XPath 選擇節點。   

152.   

153. 本文包括以下幾個部分:   

154.   

155. 預先設置    

156. 創建文檔    

157. 修改文檔    

158. 預先設置   

159.   

160. 這個解析器可以從 http://dom4j.org 獲取。通過設置使 dom4j-1.4/dom4j-full.jar 能夠在 classpath 中訪問,該文件中包括 dom4j 類、XPath 引擎以及 SAX 和 DOM 接口。如果已經使用了 JAXP 解析器中包含的 SAX 和 DOM 接口,向 classpath 中增加 dom4j-1.4/dom4j.jar 。 dom4j.jar 包括 dom4j 類和 XPath 引擎,但是不含 SAX 與 DOM 接口。    

161.   

162.   

163.   

164.     

165.   

166.   

167.  回頁首    

168.     

169.   

170.   

171.   

172. 創建文檔   

173.   

174. 本節討論使用 dom4j API 創建 XML 文檔的過程,并創建示例 XML 文檔 catalog.xml。   

175.   

176. 使用 import 語句導入 dom4j API 類:   

177.   

178. import org.dom4j.Document;   

179. import org.dom4j.DocumentHelper;   

180. import org.dom4j.Element;   

181.     

182.   

183.   

184. 使用 DocumentHelper 類創建一個文檔實例。 DocumentHelper 是生成 XML 文檔節點的 dom4j API 工廠類。    

185.   

186.  Document document = DocumentHelper.createDocument();    

187.   

188.   

189. 使用 addElement() 方法創建根元素 catalog 。 addElement() 用于向 XML 文檔中增加元素。    

190.   

191. Element catalogElement = document.addElement(“catalog”);    

192.   

193.   

194. 在 catalog 元素中使用 addComment() 方法添加注釋“An XML catalog”。    

195.   

196.  catalogElement.addComment(“An XML catalog”);    

197.   

198.   

199. 在 catalog 元素中使用 addProcessingInstruction() 方法增加一個處理指令。    

200.   

201. catalogElement.addProcessingInstruction(“target”,”text”);    

202.   

203.   

204. 在 catalog 元素中使用 addElement() 方法增加 journal 元素。    

205.   

206. Element journalElement =  catalogElement.addElement(“journal”);    

207.   

208.   

209. 使用 addAttribute() 方法向 journal 元素添加 title 和 publisher 屬性。    

210.   

211. journalElement.addAttribute(“title”, “XML Zone”);   

212.          journalElement.addAttribute(“publisher”, “IBM developerWorks”);    

213.   

214.   

215. 向 article 元素中添加 journal 元素。    

216.   

217. Element articleElement=journalElement.addElement(“article”);    

218.   

219.   

220. 為 article 元素增加 level 和 date 屬性。    

221.   

222. articleElement.addAttribute(“level”, “Intermediate”);   

223.       articleElement.addAttribute(“date”, “December-2001”);    

224.   

225.   

226. 向 article 元素中增加 title 元素。    

227.   

228. Element titleElement=articleElement.addElement(“title”);    

229.   

230.   

231. 使用 setText() 方法設置 article 元素的文本。    

232.   

233. titleElement.setText(“Java configuration with XML Schema”);    

234.   

235.   

236. 在 article 元素中增加 author 元素。    

237.   

238. Element authorElement=articleElement.addElement(“author”);    

239.   

240.   

241. 在 author 元素中增加 firstname 元素并設置該元素的文本。    

242.   

243. Element  firstNameElement=authorElement.addElement(“firstname”);   

244.      firstNameElement.setText(“Marcello”);    

245.   

246.   

247. 在 author 元素中增加 lastname 元素并設置該元素的文本。    

248.   

249. Element lastNameElement=authorElement.addElement(“lastname”);   

250.      lastNameElement.setText(“Vitaletti”);    

251.   

252.   

253. 可以使用 addDocType() 方法添加文檔類型說明。    

254.   

255. document.addDocType(“catalog”, null,”file://c:/Dtds/catalog.dtd”);    

256.   

257.   

258. 這樣就向 XML 文檔中增加文檔類型說明:   

259.   

260. <!DOCTYPE catalog SYSTEM “file://c:/Dtds/catalog.dtd”>    

261.   

262.   

263. 如果文檔要使用文檔類型定義(DTD)文檔驗證則必須有 Doctype。   

264.   

265. XML 聲明 <?xml version=”1.0″ encoding=”UTF-8″?> 自動添加到 XML 文檔中。    

266.   

267. 清單 3 所示的例子程序 XmlDom4J.java 用于創建 XML 文檔 catalog.xml。   

268.   

269. 清單 3. 生成 XML 文檔 catalog.xml 的程序(XmlDom4J.java)    

270. import org.dom4j.Document;   

271. import org.dom4j.DocumentHelper;   

272. import org.dom4j.Element;   

273. import org.dom4j.io.XMLWriter;   

274. import java.io.*;   

275. public class XmlDom4J{   

276. public void generateDocument(){   

277. Document document = DocumentHelper.createDocument();   

278.      Element catalogElement = document.addElement(“catalog”);   

279.      catalogElement.addComment(“An XML Catalog”);   

280.      catalogElement.addProcessingInstruction(“target”,”text”);   

281.      Element journalElement =  catalogElement.addElement(“journal”);   

282.      journalElement.addAttribute(“title”, “XML Zone”);   

283.      journalElement.addAttribute(“publisher”, “IBM developerWorks”);   

284.      Element articleElement=journalElement.addElement(“article”);   

285.      articleElement.addAttribute(“level”, “Intermediate”);   

286.      articleElement.addAttribute(“date”, “December-2001”);   

287.      Element  titleElement=articleElement.addElement(“title”);   

288.      titleElement.setText(“Java configuration with XML Schema”);   

289.      Element authorElement=articleElement.addElement(“author”);   

290.      Element  firstNameElement=authorElement.addElement(“firstname”);   

291.      firstNameElement.setText(“Marcello”);   

292.      Element lastNameElement=authorElement.addElement(“lastname”);   

293.      lastNameElement.setText(“Vitaletti”);   

294.      document.addDocType(“catalog”,   

295.                            null,”file://c:/Dtds/catalog.dtd”);   

296.     try{   

297.     XMLWriter output = new XMLWriter(   

298.             new FileWriter( new File(“c:/catalog/catalog.xml”) ));   

299.         output.write( document );   

300.         output.close();   

301.         }   

302.      catch(IOException e){System.out.println(e.getMessage());}   

303. }   

304. public static void main(String[] argv){   

305. XmlDom4J dom4j=new XmlDom4J();   

306. dom4j.generateDocument();   

307. }}   

308.     

309.   

310.   

311. 這一節討論了創建 XML 文檔的過程,下一節將介紹使用 dom4j API 修改這里創建的 XML 文檔。    

312.   

313.   

314.   

315.     

316.   

317.   

318.  回頁首    

319.     

320.   

321.   

322.   

323. 修改文檔   

324.   

325. 這一節說明如何使用 dom4j API 修改示例 XML 文檔 catalog.xml。   

326.   

327. 使用 SAXReader 解析 XML 文檔 catalog.xml:   

328.   

329. SAXReader saxReader = new SAXReader();   

330.  Document document = saxReader.read(inputXml);    

331.   

332.   

333. SAXReader 包含在 org.dom4j.io 包中。    

334.   

335. inputXml 是從 c:/catalog/catalog.xml 創建的 java.io.File。使用 XPath 表達式從 article 元素中獲得 level 節點列表。如果 level 屬性值是“Intermediate”則改為“Introductory”。    

336.   

337. List list = document.selectNodes(“//article/@level” );   

338.       Iterator iter=list.iterator();   

339.         while(iter.hasNext()){   

340.             Attribute attribute=(Attribute)iter.next();   

341.                if(attribute.getValue().equals(“Intermediate”))   

342.                attribute.setValue(“Introductory”);    

343.        }    

344.   

345.   

346. 獲取 article 元素列表,從 article 元素中的 title 元素得到一個迭代器,并修改 title 元素的文本。    

347.   

348. list = document.selectNodes(“//article” );   

349.      iter=list.iterator();   

350.    while(iter.hasNext()){   

351.        Element element=(Element)iter.next();   

352.       Iterator iterator=element.elementIterator(“title”);   

353.    while(iterator.hasNext()){   

354.    Element titleElement=(Element)iterator.next();   

355.    if(titleElement.getText().equals(“Java configuration with XML Schema”))   

356.      titleElement.setText(“Create flexible and extensible XML schema”);   

357.     }}    

358.   

359.   

360. 通過和 title 元素類似的過程修改 author 元素。    

361.   

362. 清單 4 所示的示例程序 Dom4JParser.java 用于把 catalog.xml 文檔修改成 catalog-modified.xml 文檔。   

363.   

364. 清單 4. 用于修改 catalog.xml 的程序(Dom4Jparser.java)    

365. import org.dom4j.Document;   

366. import org.dom4j.Element;   

367. import org.dom4j.Attribute;   

368. import java.util.List;   

369. import java.util.Iterator;   

370. import org.dom4j.io.XMLWriter;   

371. import java.io.*;   

372. import org.dom4j.DocumentException;   

373. import org.dom4j.io.SAXReader;    

374. public class Dom4JParser{   

375.  public void modifyDocument(File inputXml){   

376.   try{   

377.    SAXReader saxReader = new SAXReader();   

378.    Document document = saxReader.read(inputXml);   

379.    List list = document.selectNodes(“//article/@level” );   

380.    Iterator iter=list.iterator();   

381.    while(iter.hasNext()){   

382.     Attribute attribute=(Attribute)iter.next();   

383.     if(attribute.getValue().equals(“Intermediate”))   

384.       attribute.setValue(“Introductory”);    

385.        }   

386.       

387.    list = document.selectNodes(“//article/@date” );   

388.    iter=list.iterator();   

389.    while(iter.hasNext()){   

390.     Attribute attribute=(Attribute)iter.next();   

391.     if(attribute.getValue().equals(“December-2001”))   

392.       attribute.setValue(“October-2002”);   

393.        }   

394.    list = document.selectNodes(“//article” );   

395.    iter=list.iterator();   

396.    while(iter.hasNext()){   

397.     Element element=(Element)iter.next();   

398.     Iterator iterator=element.elementIterator(“title”);   

399.       while(iterator.hasNext()){   

400.         Element titleElement=(Element)iterator.next();   

401.         if(titleElement.getText().equals(“Java configuration with XML   

402.       Schema”))   

403.         titleElement.setText(“Create flexible and extensible XML schema”);   

404.                                           }   

405.                                 }   

406.     list = document.selectNodes(“//article/author” );   

407.     iter=list.iterator();   

408.      while(iter.hasNext()){   

409.      Element element=(Element)iter.next();   

410.      Iterator iterator=element.elementIterator(“firstname”);   

411.      while(iterator.hasNext()){   

412.       Element firstNameElement=(Element)iterator.next();   

413.       if(firstNameElement.getText().equals(“Marcello”))   

414.       firstNameElement.setText(“Ayesha”);   

415.                                      }   

416.                               }   

417.     list = document.selectNodes(“//article/author” );   

418.     iter=list.iterator();   

419.      while(iter.hasNext()){   

420.       Element element=(Element)iter.next();   

421.       Iterator iterator=element.elementIterator(“lastname”);   

422.      while(iterator.hasNext()){   

423.       Element lastNameElement=(Element)iterator.next();   

424.       if(lastNameElement.getText().equals(“Vitaletti”))   

425.       lastNameElement.setText(“Malik”);   

426.                                   }   

427.                                }   

428.      XMLWriter output = new XMLWriter(   

429.       new FileWriter( new File(“c:/catalog/catalog-modified.xml”) ));   

430.      output.write( document );   

431.      output.close();   

432.    }   

433.     

434.   catch(DocumentException e)   

435.                  {   

436.                   System.out.println(e.getMessage());   

437.                             }   

438.   catch(IOException e){   

439.                        System.out.println(e.getMessage());   

440.                     }   

441.  }   

442.  public static void main(String[] argv){   

443.   Dom4JParser dom4jParser=new Dom4JParser();   

444.   dom4jParser.modifyDocument(new File(“c:/catalog/catalog.xml”));   

445.                                         }   

446.    }   

447.    

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
精品91福利视频| 免费人成网站在线观看欧美高清| 亚洲三级在线| 视频在线观看一区| 天堂网在线观看国产精品| 秋霞影视一区二区三区| 蜜桃精品在线| 激情久久久久久久| 亚洲黄色在线| 免费成人在线影院| 亚洲一区二区小说| 日韩精品视频在线看| 日韩美女国产精品| 国产欧美一区二区精品久久久 | 国产日韩高清一区二区三区在线 | 日韩午夜av在线| 另类亚洲自拍| 视频精品一区| 国产精品一区二区三区美女 | 久久久久91| 午夜日本精品| 亚洲精品一级二级三级| 亚欧洲精品视频在线观看| 久久精品99久久久| 久久男人av资源站| 亚洲一区二区三区高清| 日韩av一区二| 精品国产黄a∨片高清在线| 日韩高清成人| 蜜桃视频在线观看一区| 日本午夜精品久久久| 免费亚洲一区| 日韩欧美另类一区二区| 欧美一区=区| 欧美视频久久| 动漫av一区| 欧美日韩高清| 久久先锋影音| 国产图片一区| 精品久久在线| 在线日韩欧美| 在线精品亚洲| 久久精品日韩欧美| 久久久国产亚洲精品| 蘑菇福利视频一区播放| 日韩av一二三| 国产不卡av一区二区| 天堂va欧美ⅴa亚洲va一国产| 国产美女久久| 亚洲成人精品| 午夜电影一区| 免费观看亚洲| 好吊日精品视频 | 最新日韩欧美| 国产毛片精品久久| 欧洲亚洲一区二区三区| 中文字幕乱码亚洲无线精品一区| 精品中文字幕一区二区三区| 欧美a级一区| 欧美黄色精品| 国产精品婷婷| 国产一区二区亚洲| 中文字幕一区二区av| 国产一区二区三区国产精品| 在线视频亚洲欧美中文| 精品一区二区三区在线观看视频| 亚洲网站视频| 国产精品亚洲综合久久| 制服诱惑一区二区| 老牛国内精品亚洲成av人片| 99riav1国产精品视频| 久久精品国产网站| 亚洲一区二区日韩| 91精品国产成人观看| 国产精品久久久久久妇女| 99日韩精品| 日韩欧美网址| 久久av偷拍| 亚州av一区| 一区在线视频观看| 高清一区二区| 日韩精品久久久久久久软件91| 九九精品调教| 精品一区视频| 日韩三级久久| 午夜日本精品| 成人av三级| 国产日韩欧美中文在线| 玖玖玖国产精品| 91精品一区国产高清在线gif | 成人亚洲欧美| 国产精品亚洲产品| 蜜桃免费网站一区二区三区| 亚洲日本网址| 国产成人黄色| 国产精品久久亚洲不卡| 日韩欧美中文字幕一区二区三区| 免费毛片在线不卡| 日韩天堂在线| 97精品一区二区| 久久久久久亚洲精品美女| 日韩av网站在线观看| 视频一区二区欧美| 欧美日韩四区| 欧美在线亚洲综合一区| 久久久久99| 日韩中文在线电影| 久久影院一区二区三区| 欧美日韩一视频区二区| 日韩欧美激情| 亚洲精品观看| 亚洲人成网站在线在线观看| 夜久久久久久| 在线综合亚洲| 在线国产一区二区| 91成人超碰| 婷婷成人在线| 国内激情久久| 免费久久精品| 在线看片不卡| 国产亚洲综合精品| 亚洲综合精品| 亚洲欧美伊人| 婷婷亚洲五月| 欧美 日韩 国产精品免费观看| 久久久精品久久久久久96| 欧美aa在线观看| 日韩免费小视频| 久久精品国产99久久| 亚洲精品a级片| 国产精品视区| 在线精品视频一区| 日韩欧美三区| 国产日韩欧美一区二区三区| 国产日产一区| 久久精品国产久精国产爱| 国产精品13p| 国产盗摄——sm在线视频| 免费看av不卡| 欧美日韩高清| 热久久国产精品| 日本不卡在线视频| 国产精品乱战久久久| 国产suv精品一区| 亚洲综合在线电影| 国产在线日韩| 免费成人性网站| 久久精品 人人爱| 麻豆国产91在线播放| 国产麻豆久久| 午夜在线视频观看日韩17c| 亚久久调教视频| 欧美日韩1区| 岛国精品一区| 久久亚洲精品中文字幕| 伊人影院久久| 少妇精品久久久一区二区| 国产精品久久久久77777丨| 成人在线黄色| 亚洲大全视频| 国产成人精品亚洲日本在线观看| 精品视频网站| 黄色免费成人| 69堂精品视频在线播放| 99精品在线观看| 亚洲精品护士| 91亚洲国产成人久久精品| 深夜视频一区二区| 日韩精品成人| 美女国产一区二区三区| 欧美日韩 国产精品| 99在线精品免费视频九九视 | 一本一道久久a久久精品蜜桃| 91亚洲一区| 久久人人97超碰国产公开结果| 国产日韩欧美三级| 国产精品成人a在线观看| 国产成人精品一区二区三区视频 | 超碰99在线| 高清一区二区三区| 国产亚洲人成a在线v网站| 亚洲深爱激情| 午夜国产精品视频免费体验区| 日韩av一级| 美女毛片一区二区三区四区最新中文字幕亚洲 | 国产亚洲一区二区三区啪| 国语精品一区| 国产videos久久| 国产精品白丝av嫩草影院| 国产专区精品| 国产精品色婷婷在线观看| 免费看久久久| 美女视频网站久久| 91欧美极品| 色婷婷精品视频| 天堂久久一区| 亚洲丝袜啪啪| 免费成人在线视频观看| 久久婷婷丁香| 亚洲精华国产欧美|