﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-insomnia,politic,proficient ,sensible.-随笔分类-几种文档解析</title><link>http://www.blogjava.net/youngturk/category/51769.html</link><description>The world is a fine place , and worth fighting for it.</description><language>zh-cn</language><lastBuildDate>Wed, 10 Jul 2013 09:46:08 GMT</lastBuildDate><pubDate>Wed, 10 Jul 2013 09:46:08 GMT</pubDate><ttl>60</ttl><item><title>XML解析SAX</title><link>http://www.blogjava.net/youngturk/archive/2013/07/10/401405.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 10 Jul 2013 07:03:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2013/07/10/401405.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/401405.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2013/07/10/401405.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/401405.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/401405.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_39_3871_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_3871_Open_Text.style.display='none'; Codehighlighter1_39_3871_Closed_Image.style.display='inline'; Codehighlighter1_39_3871_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_39_3871_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_39_3871_Closed_Text.style.display='none'; Codehighlighter1_39_3871_Open_Image.style.display='inline'; Codehighlighter1_39_3871_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;List&nbsp;xmlElements(String&nbsp;xmlDoc)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_39_3871_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_39_3871_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">创建一个新的字符串</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringReader&nbsp;read&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringReader(xmlDoc);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">创建新的输入源SAX&nbsp;解析器将使用&nbsp;InputSource&nbsp;对象来确定如何读取&nbsp;XML&nbsp;输入</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputSource&nbsp;source&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InputSource(read);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">创建一个新的SAXBuilder</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SAXBuilder&nbsp;sb&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SAXBuilder();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;list&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ArrayList();<br /><img id="Codehighlighter1_342_3642_Open_Image" onclick="this.style.display='none'; Codehighlighter1_342_3642_Open_Text.style.display='none'; Codehighlighter1_342_3642_Closed_Image.style.display='inline'; Codehighlighter1_342_3642_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_342_3642_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_342_3642_Closed_Text.style.display='none'; Codehighlighter1_342_3642_Open_Image.style.display='inline'; Codehighlighter1_342_3642_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_342_3642_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_342_3642_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">通过输入源构造一个Document</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;doc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sb.build(source);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">取的根元素</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;root&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;doc.getRootElement();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(root.getName());</span><span style="color: #008000">//</span><span style="color: #008000">输出根元素的名称（测试）<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">得到根元素所有子元素的集合</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;jiedian&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;root.getChildren();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">获得XML中的命名空间（XML中未定义可不写）</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Namespace&nbsp;ns&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;root.getNamespace();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;et&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataModel&nbsp;dataModel&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DataModel();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collections&nbsp;c&nbsp;;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctnfee&nbsp;ctnfee&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img id="Codehighlighter1_902_3306_Open_Image" onclick="this.style.display='none'; Codehighlighter1_902_3306_Open_Text.style.display='none'; Codehighlighter1_902_3306_Closed_Image.style.display='inline'; Codehighlighter1_902_3306_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_902_3306_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_902_3306_Closed_Text.style.display='none'; Codehighlighter1_902_3306_Open_Image.style.display='inline'; Codehighlighter1_902_3306_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">jiedian.size();i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_902_3306_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_902_3306_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;et&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Element)&nbsp;jiedian.get(i);</span><span style="color: #008000">//</span><span style="color: #008000">循环依次得到子元素</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Ctnfee();<br /><img id="Codehighlighter1_1017_1185_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1017_1185_Open_Text.style.display='none'; Codehighlighter1_1017_1185_Closed_Image.style.display='inline'; Codehighlighter1_1017_1185_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1017_1185_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1017_1185_Closed_Text.style.display='none'; Codehighlighter1_1017_1185_Open_Image.style.display='inline'; Codehighlighter1_1017_1185_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1017_1185_Closed_Text">/**&nbsp;*/</span><span id="Codehighlighter1_1017_1185_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000">//*<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;无命名空间定义时<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;et.getChild("users_id").getText();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;et.getChild("users_address",ns).getText()<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img id="Codehighlighter1_1203_1342_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1203_1342_Open_Text.style.display='none'; Codehighlighter1_1203_1342_Closed_Image.style.display='inline'; Codehighlighter1_1203_1342_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1203_1342_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1203_1342_Closed_Text.style.display='none'; Codehighlighter1_1203_1342_Open_Image.style.display='inline'; Codehighlighter1_1203_1342_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1203_1342_Closed_Text">/**/</span><span id="Codehighlighter1_1203_1342_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">System.out.println(et.getChild("users_id",ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(et.getChild("users_address",ns).getText());</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">p_id</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">ctnno</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setP_id(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">p_id</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setCtnno(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">ctnno</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setFee_type(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">fee_type</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setStart_time(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">start_time</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setEnd_time(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">end_time</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setFee(Double.parseDouble(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">fee</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText()));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setFee_count(Double.parseDouble(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">fee_count</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText()));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setCpid(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">cpid</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setFee_name(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">fee_name</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setFee_rate_id(Double.parseDouble(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">fee_rate_id</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText()));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setJffs(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">jffs</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setIf_hand(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">if_hand</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setSfid(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">sfid</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setWt_company(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">wt_company</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setOpid(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">opid</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setCy(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">cy</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setIf_bf(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">if_bf</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setDays_count(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">days_count</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setIf_collect(Double.parseDouble(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">if_collect</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText()));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setIf_dd(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">if_dd</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setDd_fee_name(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">dd_fee_name</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctnfee.setSpec_sign(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">spec_sign</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(ctnfee);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counttotal&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;counttotal&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">Double.parseDouble(et.getChild(</span><span style="color: #000000">"</span><span style="color: #000000">fee_count</span><span style="color: #000000">"</span><span style="color: #000000">,ns).getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img id="Codehighlighter1_3320_3373_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3320_3373_Open_Text.style.display='none'; Codehighlighter1_3320_3373_Closed_Image.style.display='inline'; Codehighlighter1_3320_3373_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_3320_3373_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_3320_3373_Closed_Text.style.display='none'; Codehighlighter1_3320_3373_Open_Image.style.display='inline'; Codehighlighter1_3320_3373_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_3320_3373_Closed_Text">/**&nbsp;*/</span><span id="Codehighlighter1_3320_3373_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000">//*<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;如要取&lt;row&gt;下的子元素的名称<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;et&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Element)&nbsp;jiedian.get(</span><span style="color: #000000">0</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;zjiedian&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;et.getChildren();<br /><img id="Codehighlighter1_3510_3632_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3510_3632_Open_Text.style.display='none'; Codehighlighter1_3510_3632_Closed_Image.style.display='inline'; Codehighlighter1_3510_3632_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_3510_3632_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_3510_3632_Closed_Text.style.display='none'; Codehighlighter1_3510_3632_Open_Image.style.display='inline'; Codehighlighter1_3510_3632_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;j</span><span style="color: #000000">&lt;</span><span style="color: #000000">zjiedian.size();j</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_3510_3632_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_3510_3632_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;xet&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Element)&nbsp;zjiedian.get(j);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(xet.getName());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img id="Codehighlighter1_3668_3744_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3668_3744_Open_Text.style.display='none'; Codehighlighter1_3668_3744_Closed_Image.style.display='inline'; Codehighlighter1_3668_3744_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_3668_3744_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_3668_3744_Closed_Text.style.display='none'; Codehighlighter1_3668_3744_Open_Image.style.display='inline'; Codehighlighter1_3668_3744_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(JDOMException&nbsp;e)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_3668_3744_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_3668_3744_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;自动生成&nbsp;catch&nbsp;块</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><img id="Codehighlighter1_3768_3844_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3768_3844_Open_Text.style.display='none'; Codehighlighter1_3768_3844_Closed_Image.style.display='inline'; Codehighlighter1_3768_3844_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_3768_3844_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_3768_3844_Closed_Text.style.display='none'; Codehighlighter1_3768_3844_Open_Image.style.display='inline'; Codehighlighter1_3768_3844_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(IOException&nbsp;e)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_3768_3844_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_3768_3844_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;自动生成&nbsp;catch&nbsp;块</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;list;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><img src ="http://www.blogjava.net/youngturk/aggbug/401405.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2013-07-10 15:03 <a href="http://www.blogjava.net/youngturk/archive/2013/07/10/401405.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA解析XML格式字符串</title><link>http://www.blogjava.net/youngturk/archive/2013/04/08/397540.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Mon, 08 Apr 2013 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2013/04/08/397540.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/397540.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2013/04/08/397540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/397540.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/397540.html</trackback:ping><description><![CDATA[<p>import java.io.IOException;<br />import java.io.StringReader;<br />import java.util.List;</p>
<p>import org.jdom.Document;<br />import org.jdom.Element;<br />import org.jdom.JDOMException;<br />import org.jdom.Namespace;<br />import org.jdom.input.SAXBuilder;<br />import org.xml.sax.InputSource;</p>
<p>public class TestXML {<br />&nbsp;&nbsp;&nbsp; public List xmlElements(String xmlDoc) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //创建一个新的字符串<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringReader read = new StringReader(xmlDoc);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InputSource source = new InputSource(read);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //创建一个新的SAXBuilder<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAXBuilder sb = new SAXBuilder();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //通过输入源构造一个Document<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document doc = sb.build(source);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //取的根元素<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element root = doc.getRootElement();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(root.getName());//输出根元素的名称（测试）<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //得到根元素所有子元素的集合<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List jiedian = root.getChildren();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //获得XML中的命名空间（XML中未定义可不写）<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Namespace ns = root.getNamespace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element et = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;jiedian.size();i++){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; et = (Element) jiedian.get(i);//循环依次得到子元素<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**//*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 无命名空间定义时<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * et.getChild("users_id").getText();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * et.getChild("users_address",ns).getText()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*System.out.println(et.getChild("users_id",ns).getText());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(et.getChild("users_address",ns).getText());*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(et.getChild("p_id",ns).getText());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(et.getChild("ctnno",ns).getText());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**//*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 如要取&lt;row&gt;下的子元素的名称<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; et = (Element) jiedian.get(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List zjiedian = et.getChildren();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int j=0;j&lt;zjiedian.size();j++){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element xet = (Element) zjiedian.get(j);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(xet.getName());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (JDOMException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO 自动生成 catch 块<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO 自动生成 catch 块<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; public static void main(String[] args){<br />&nbsp;&nbsp;&nbsp; &nbsp;TestXML doc = new TestXML();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String xml = "&lt;?xml version=\"1.0\" encoding=\"gb2312\"?&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;Result xmlns=\"<a href="http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out\">http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out\</a>"&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;row resultcount=\"1\"&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;users_id&gt;1001&nbsp;&nbsp;&nbsp;&nbsp; &lt;/users_id&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;users_name&gt;wangwei&nbsp;&nbsp; &lt;/users_name&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;users_group&gt;80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/users_group&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;users_address&gt;1001号&nbsp;&nbsp; &lt;/users_address&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;/row&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;row resultcount=\"1\"&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;users_id&gt;1002&nbsp;&nbsp;&nbsp;&nbsp; &lt;/users_id&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;users_name&gt;wangwei&nbsp;&nbsp; &lt;/users_name&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;users_group&gt;80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/users_group&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;users_address&gt;1002号&nbsp;&nbsp; &lt;/users_address&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;/row&gt;"+<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;/Result&gt;";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String xml1 = "&lt;?xml version=\"1.0\" encoding=\"UTF-16LE\" standalone=\"no\"?&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&lt;d_fsgl_fee_count_for_xml&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp; &lt;d_fsgl_fee_count_for_xml_row&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;p_id&gt;JD1302130002&lt;/p_id&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;ctnno&gt;CXDU1499549&lt;/ctnno&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;fee_type&gt;单&lt;/fee_type&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;start_time&gt;2013-02-09 00:00:00&lt;/start_time&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;end_time&gt;2013-02-13 00:00:00&lt;/end_time&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;fee&gt;4&lt;/fee&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;fee_count&gt;16&lt;/fee_count&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;cpid&gt;&lt;/cpid&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;fee_name&gt;堆存费&lt;/fee_name&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;fee_rate_id&gt;&lt;/fee_rate_id&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;jffs&gt;1&lt;/jffs&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;if_hand&gt;0&lt;/if_hand&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;sfid&gt;FDZT1302180104&lt;/sfid&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;wt_company&gt;QT&lt;/wt_company&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;opid&gt;928&lt;/opid&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;cy&gt;D&lt;/cy&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;if_bf&gt;&lt;/if_bf&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;days_count&gt;4&lt;/days_count&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;if_collect&gt;1&lt;/if_collect&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;if_dd&gt;&lt;/if_dd&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;dd_fee_name&gt;&lt;/dd_fee_name&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;spec_sign&gt;五洲代垫&lt;/spec_sign&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&lt;/d_fsgl_fee_count_for_xml_row&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&lt;d_fsgl_fee_count_for_xml_row&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;p_id&gt;JD1302130002&lt;/p_id&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;ctnno&gt;CXDU1499549&lt;/ctnno&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;fee_type&gt;周&lt;/fee_type&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;start_time&gt;2013-02-13 00:00:00&lt;/start_time&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;end_time&gt;2013-02-20 00:00:00&lt;/end_time&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;fee&gt;4&lt;/fee&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;fee_count&gt;32&lt;/fee_count&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;cpid&gt;&lt;/cpid&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;fee_name&gt;堆存费&lt;/fee_name&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;fee_rate_id&gt;67&lt;/fee_rate_id&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;jffs&gt;1&lt;/jffs&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;if_hand&gt;0&lt;/if_hand&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;sfid&gt;FDZT1302180104&lt;/sfid&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;wt_company&gt;QT&lt;/wt_company&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;opid&gt;928&lt;/opid&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;cy&gt;D&lt;/cy&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;if_bf&gt;&lt;/if_bf&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;days_count&gt;8&lt;/days_count&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;if_collect&gt;1&lt;/if_collect&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;if_dd&gt;&lt;/if_dd&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;dd_fee_name&gt;&lt;/dd_fee_name&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&nbsp;&lt;spec_sign&gt;&lt;/spec_sign&gt;" +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&nbsp;&lt;/d_fsgl_fee_count_for_xml_row&gt;"&nbsp; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"&lt;/d_fsgl_fee_count_for_xml&gt;";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.xmlElements(xml1);<br />&nbsp;&nbsp;&nbsp; }<br />}</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/youngturk/aggbug/397540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2013-04-08 17:20 <a href="http://www.blogjava.net/youngturk/archive/2013/04/08/397540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dom4j全部实例</title><link>http://www.blogjava.net/youngturk/archive/2012/06/15/380845.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Fri, 15 Jun 2012 03:14:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/15/380845.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/380845.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/15/380845.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/380845.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/380845.html</trackback:ping><description><![CDATA[<div> <div align="center"> <table border="1" cellpadding="0" cellspacing="0" width="543"> <tbody> <tr> <td width="154"><div align="left"><strong><em>Attribute</em></strong></div></td> <td width="389"> <div align="left">Attribute定义了XML的属性</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>Branch</em></strong></div></td> <td width="389"> <div align="left">Branch为能够包含子节点的节点如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为，</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>CDATA</em></strong></div></td> <td width="389"> <div align="left">CDATA 定义了XML CDATA 区域</div></td></tr> <tr> <td width="154"> <div align="left"><strong><a href="http://www.daima.com.cn/Info/55/Local%20Settings/Temporary%20Internet%20Files/MyWeb/myclasses/dom4j-1.4/doc/apidocs/org/dom4j/CharacterData.html"><em>Charact</em></a><em>e</em><a href="http://www.daima.com.cn/Info/55/Local%20Settings/Temporary%20Internet%20Files/MyWeb/myclasses/dom4j-1.4/doc/apidocs/org/dom4j/CharacterData.html"><em>rData</em></a></strong></div></td> <td width="389"> <div align="left">CharacterData是一个标识接口，标识基于字符的节点。如CDATA，Comment,  Text.</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>Comment</em></strong></div></td> <td width="389"> <div align="left">Comment 定义了XML注释的行为</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>Document</em></strong></div></td> <td width="389"> <div align="left">定义了XML文档</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>DocumentType</em></strong></div></td></tr></tbody></table></div> <table align="center" border="1" cellpadding="0" cellspacing="0" width="543"> <tbody> <tr> <td width="389"> <div align="left">DocumentType 定义XML DOCTYPE声明</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>Element</em></strong></div></td> <td width="389"> <div align="left">Element定义XML 元素</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>ElementHandler</em></strong></div></td> <td width="389"> <div align="left">ElementHandler定义了 Element 对象的处理器</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>ElementPath</em></strong></div></td> <td width="389"> <div align="left">被 ElementHandler  使用，用于取得当前正在处理的路径层次信息</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>Entity</em></strong></div></td> <td width="389"> <div align="left">Entity定义 XML entity</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>Node</em></strong></div></td> <td width="389"> <div align="left">Node为所有的dom4j中XML节点定义了多态行为</div></td></tr> <tr> <td width="154"> <div align="left"><strong><a href="http://www.daima.com.cn/Info/55/Local%20Settings/Temporary%20Internet%20Files/MyWeb/myclasses/dom4j-1.4/doc/apidocs/org/dom4j/NodeFilter.html"><em>Node</em></a><em>F</em><a href="http://www.daima.com.cn/Info/55/Local%20Settings/Temporary%20Internet%20Files/MyWeb/myclasses/dom4j-1.4/doc/apidocs/org/dom4j/NodeFilter.html"><em>ilter</em></a></strong></div></td> <td width="389"> <div align="left">NodeFilter 定义了在dom4j节点中产生的一个滤镜或谓词的行为（predicate）</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>ProcessingInstruction</em></strong></div></td> <td width="389"> <div align="left">ProcessingInstruction 定义 XML 处理指令.</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>Text</em></strong></div></td> <td width="389"> <div align="left">Text 定义XML 文本节点.</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>Visitor</em></strong></div></td> <td width="389"> <div align="left">Visitor 用于实现Visitor模式.</div></td></tr> <tr> <td width="154"> <div align="left"><strong><em>XPath</em></strong></div></td> <td width="389"> <div align="left">XPath </div></td></tr></tbody></table></div><div><img src="http://zhangjunhd.blog.51cto.com/attachment/200901/200901131231837672201.jpg" alt="" border="0" /></div><div><div align="left">要想弄懂这套接口，关键的是要明白接口的继承关系：</div> <ul type="circle"><li>interface java.lang.<strong>Cloneable</strong>  <ul type="circle"><li>interface org.dom4j.<strong>Node</strong>  </li></ul></li></ul> <ul type="circle"><ul type="circle"><ul type="square"><li>interface org.dom4j.<strong>Attribute</strong>  </li><li>interface org.dom4j.<strong>Branch</strong>  </li></ul></ul></ul> <ul type="circle"><ul type="circle"><ul type="square"><ul type="square"><li>interface org.dom4j.<strong>Document</strong>  </li><li>interface org.dom4j.<strong>Element</strong>  </li></ul><li>interface org.dom4j.<strong>CharacterData</strong>  <ul type="square"><li>interface org.dom4j.<strong>CDATA</strong>  </li><li>interface org.dom4j.<strong>Comment</strong>  </li><li>interface org.dom4j.<strong>Text</strong>  </li></ul> </li><li>interface org.dom4j.<strong>DocumentType</strong>   </li><li>interface org.dom4j.<strong>Entity</strong>  </li><li>interface org.dom4j.<strong>ProcessingInstruction</strong> </li></ul></ul></ul></div><div><div align="left">１．&nbsp;读取并解析XML文档：</div> <div align="left">读写XML文档主要依赖于org.dom4j.io包，其中提供DOMReader和SAXReader两类不同方式，而调用方式是一样的。这就是依靠接口的好处。</div> <table border="1" cellpadding="0" cellspacing="0" width="637"> <tbody> <tr> <td valign="top" width="603"> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp;&nbsp; // 从文件读取XML，输入文件名，返回XML文档</div> <div align="left">&nbsp;&nbsp;&nbsp; <strong>public</strong> Document read(String fileName)  <strong>throws</strong> MalformedURLException, DocumentException {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAXReader reader = <strong>new</strong>  SAXReader();</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document document = reader.read(<strong>new</strong>  File(fileName));</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>return</strong> document;</div> <div align="left">&nbsp;&nbsp;&nbsp; }</div> <div align="left">&nbsp;</div></td></tr></tbody></table> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<div>其中，reader的read方法是重载的，可以从InputStream, File,  Url等多种不同的源来读取。得到的Document对象就带表了整个XML。根据本人自己的经验，读取的字符编码是按照XML文件头定义的编码来转换。如果遇到乱码问题，注意要把各处的编码名称保持一致即可。<br /></div><div><div align="left">２．&nbsp;&nbsp;&nbsp; 取得Root节点</div> <div align="left">读取后的第二步，就是得到Root节点。熟悉XML的人都知道，一切XML分析都是从Root元素开始的。</div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">　&nbsp; <strong>public</strong> Element getRootElement(Document  doc){</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>return</strong> doc.getRootElement();</div> <div align="left">&nbsp;&nbsp;&nbsp; }</div> <div align="left">&nbsp;</div></td></tr></tbody></table></div></div></div><div> <div align="left">３．&nbsp;&nbsp;&nbsp; 遍历XML树</div> <div align="left">DOM4J提供至少3种遍历节点的方法：</div> <div align="left">1) 枚举(Iterator)</div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp;&nbsp; // 枚举所有子节点</div> <div align="left"><strong>&nbsp;&nbsp;&nbsp; for</strong> ( Iterator i = root.elementIterator();  i.hasNext(); ) {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element element = (Element) i.next();</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // do something</div> <div align="left">&nbsp;&nbsp;&nbsp; }</div> <div align="left">&nbsp;&nbsp;&nbsp; // 枚举名称为foo的节点</div> <div align="left"><strong>&nbsp;&nbsp;&nbsp; for</strong> ( Iterator i =  root.elementIterator(foo); i.hasNext();) {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element foo = (Element) i.next();</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // do something</div> <div align="left">&nbsp;&nbsp;&nbsp; }</div> <div align="left">&nbsp;&nbsp;&nbsp; // 枚举属性</div> <div align="left"><strong>&nbsp;&nbsp;&nbsp; for</strong> ( Iterator i =  root.attributeIterator(); i.hasNext(); ) {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Attribute attribute = (Attribute) i.next();</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // do something</div> <div align="left">&nbsp;&nbsp;&nbsp; }</div></td></tr></tbody></table> <div align="left"><br />2)递归 </div> <div align="left">递归也可以采用Iterator作为枚举手段，但文档中提供了另外的做法</div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp;&nbsp; <strong>public</strong> <strong>void</strong> treeWalk()  {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; treeWalk(getRootElement());</div> <div align="left">&nbsp;&nbsp;&nbsp; }</div> <div align="left">&nbsp;&nbsp;&nbsp; <strong>public</strong> <strong>void</strong>  treeWalk(Element element) {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>for</strong> (<strong>int</strong> i = 0, size =  element.nodeCount(); i &lt; size; i++) &nbsp;&nbsp;&nbsp; {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Node node = element.node(i);</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>if</strong> (node <strong>instanceof</strong>  Element) {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; treeWalk((Element) node);</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <strong>else</strong> { // do something....</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</div> <div align="left">}</div> <div align="left">&nbsp;</div></td></tr></tbody></table> <div align="left"><br />3) Visitor模式</div> <div align="left">最令人兴奋的是DOM4J对Visitor的支持，这样可以大大缩减代码量，并且清楚易懂。了解设计模式的人都知道，Visitor是GOF设计模式之一。其主要原理就是两种类互相保有对方的引用，并且一种作为Visitor去访问许多Visitable。我们来看DOM4J中的Visitor模式(快速文档中没有提供)</div> <div align="left">只需要自定一个类实现Visitor接口即可。</div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">　&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <strong>public</strong> <strong>class</strong> MyVisitor  <strong>extends</strong> VisitorSupport {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <strong>public</strong> <strong>void</strong>  visit(Element element){</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(element.getName());</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</div> <div align="left"><strong>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; public</strong> <strong>void</strong>  visit(Attribute attr){</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(attr.getName());</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</div> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 调用：&nbsp; root.accept(new  MyVisitor())</div></td></tr></tbody></table> <div align="left">&nbsp;&nbsp;&nbsp;  Visitor接口提供多种Visit()的重载，根据XML不同的对象，将采用不同的方式来访问。上面是给出的Element和Attribute的简单实现，一般比较常用的就是这两个。VisitorSupport是DOM4J提供的默认适配器，Visitor接口的Default  Adapter模式，这个模式给出了各种visit(*)的空实现，以便简化代码。</div> <div align="left">&nbsp;&nbsp;&nbsp;  注意，这个Visitor是自动遍历所有子节点的。如果是root.accept(MyVisitor)，将遍历子节点。我第一次用的时候，认为是需要自己遍历，便在递归中调用Visitor，结果可想而知。</div> <div align="left">4. XPath支持</div> <div align="left">&nbsp;&nbsp;&nbsp; DOM4J对XPath有良好的支持，如访问一个节点，可直接用XPath选择。</div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp; <strong>public</strong> <strong>void</strong> bar(Document  document) {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;List list = document.selectNodes( //foo/bar );</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Node node =  document.selectSingleNode(//foo/bar/author);</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;String name = node.valueOf( @name );</div> <div align="left">&nbsp;&nbsp;&nbsp; &nbsp;}</div> <div align="left">&nbsp;</div></td></tr></tbody></table> <div align="left">&nbsp;&nbsp;&nbsp; 例如，如果你想查找XHTML文档中所有的超链接，下面的代码可以实现： </div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp;&nbsp; <strong>public</strong> <strong>void</strong>  findLinks(Document document) <strong>throws</strong> DocumentException {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;List list = document.selectNodes( //a/@href );</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<strong>for</strong> (Iterator iter = list.iterator();  iter.hasNext(); ) {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Attribute attribute = (Attribute) iter.next();</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;String url = attribute.getValue();</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}</div> <div align="left">&nbsp;&nbsp;&nbsp; &nbsp;}</div> <div align="left">&nbsp;</div></td></tr></tbody></table> <div align="left"><br />5. 字符串与XML的转换</div> <div align="left">有时候经常要用到字符串转换为XML或反之，</div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp;&nbsp; // XML转字符串 </div> <div align="left">　 Document document = ...;</div> <div align="left">&nbsp;&nbsp;&nbsp; String text = document.asXML();</div> <div align="left">// 字符串转XML</div> <div align="left">&nbsp;&nbsp;&nbsp; String text = &lt;person&gt; &lt;name&gt;James&lt;/name&gt;  &lt;/person&gt;;</div> <div align="left">&nbsp;&nbsp;&nbsp; Document document = DocumentHelper.parseText(text);</div> <div align="left">&nbsp;</div></td></tr></tbody></table> <div align="left"><br />6 用XSLT转换XML</div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp; <strong>public</strong> Document styleDocument(</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document document, </div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String stylesheet</div> <div align="left">&nbsp;&nbsp;&nbsp; ) <strong>throws</strong> Exception {</div> <div align="left">&nbsp;&nbsp;&nbsp; // load the transformer using JAXP</div> <div align="left">&nbsp;&nbsp;&nbsp; TransformerFactory factory =  TransformerFactory.newInstance();</div> <div align="left">&nbsp;&nbsp;&nbsp; Transformer transformer = factory.newTransformer( </div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>new</strong> StreamSource( stylesheet ) </div> <div align="left">&nbsp;&nbsp;&nbsp; );</div> <div align="left">&nbsp;&nbsp;&nbsp; // now lets style the given document</div> <div align="left">&nbsp;&nbsp;&nbsp; DocumentSource source = <strong>new</strong> DocumentSource(  document );</div> <div align="left">&nbsp;&nbsp;&nbsp; DocumentResult result = <strong>new</strong>  DocumentResult();</div> <div align="left">&nbsp;&nbsp;&nbsp; transformer.transform( source, result );</div> <div align="left">&nbsp;&nbsp;&nbsp; // return the transformed document</div> <div align="left">&nbsp;&nbsp;&nbsp; Document transformedDoc = result.getDocument();</div> <div align="left">&nbsp;&nbsp;&nbsp; <strong>return</strong> transformedDoc;</div> <div align="left">}</div> <div align="left">&nbsp;</div></td></tr></tbody></table> <div align="left"><br />7. 创建XML</div> <div align="left">&nbsp; 一般创建XML是写文件前的工作，这就像StringBuffer一样容易。</div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp;&nbsp; <strong>public</strong> Document createDocument() {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document document =  DocumentHelper.createDocument();</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element root = document.addElement(root);</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element author1 =</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addElement(author)</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addAttribute(name, James)</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addAttribute(location, UK)</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addText(James Strachan);</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element author2 =</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addElement(author)</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addAttribute(name, Bob)</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addAttribute(location, US)</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addText(Bob McWhirter);</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>return</strong> document;</div> <div align="left">&nbsp;&nbsp;&nbsp; }</div> <div align="left">&nbsp;</div></td></tr></tbody></table> <div align="left"><br />8. 文件输出</div> <div align="left">&nbsp;&nbsp;&nbsp; 一个简单的输出方法是将一个Document或任何的Node通过write方法输出</div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp;&nbsp; FileWriter out = <strong>new</strong> FileWriter( foo.xml  );</div> <div align="left">&nbsp;&nbsp;&nbsp; document.write(out);</div> <div align="left">&nbsp;</div></td></tr></tbody></table> <div align="left">&nbsp; 如果你想改变输出的格式，比如美化输出或缩减格式，可以用XMLWriter类</div> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td valign="top" width="528"> <div align="left">&nbsp;</div> <div align="left">&nbsp;&nbsp;&nbsp; <strong>public</strong> <strong>void</strong> write(Document  document) <strong>throws</strong> IOException {</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 指定文件</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XMLWriter writer = <strong>new</strong> XMLWriter(</div> <div align="left">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>new</strong> FileWriter( output.xml )</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.write( document );</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.close();</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 美化格式</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OutputFormat format =  OutputFormat.createPrettyPrint();</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer = <strong>new</strong> XMLWriter( System.out,  format );</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.write( document );</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 缩减格式</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format = OutputFormat.createCompactFormat();</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer = <strong>new</strong> XMLWriter( System.out,  format );</div> <div align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.write( document );</div> <div align="left">&nbsp;&nbsp;&nbsp; }</div> <div align="left">&nbsp;</div></td></tr></tbody></table></div><div><strong><span style="font-size: 14pt;">5.</span></strong><strong><span style="font-size: 14pt; font-family: 宋体;">使用</span></strong><strong><span style="font-size: 14pt;">ElementHandler</span></strong></div><div>XmlHandler.java</div><div><div align="left"><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">import</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> java.io.File;</span></div>   <div align="left">&nbsp;</div>   <div align="left"><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">import</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> org.dom4j.DocumentException;</span></div>   <div align="left"><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">import</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> org.dom4j.Element;</span></div>   <div align="left"><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">import</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> org.dom4j.ElementHandler;</span></div>   <div align="left"><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">import</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> org.dom4j.ElementPath;</span></div>   <div align="left"><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">import</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> org.dom4j.io.SAXReader;</span></div>   <div align="left">&nbsp;</div>   <div align="left"><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">public</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">class</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> XmlHandler {</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">public</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">static</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">void</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> main(String[] args) {</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAXReader saxReader = </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">new</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> SAXReader();</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File file = </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">new</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> File(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #2a00ff;">"students.xml"</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">);</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">try</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> {</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f7f5f;">// </span><span style="font-size: 10pt; font-family: 宋体; color: #3f7f5f;">添加一个</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f7f5f;">ElementHandler</span><span style="font-size: 10pt; font-family: 宋体; color: #3f7f5f;">实例。</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; saxReader.addHandler(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #2a00ff;">"/students/student"</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">, </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">new</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> StudentHandler());</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; saxReader.read(file);</span></div>   <div align="left">&nbsp;</div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">catch</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> (DocumentException e) {</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.</span><em><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #0000c0;">out</span></em><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">.println(e.getMessage());</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; }</span></div>   <div align="left">&nbsp;</div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f5fbf;">/**</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f5fbf;">*</span> <span style="font-size: 10pt; font-family: 宋体; color: #3f5fbf;">定义</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f5fbf;">StudentHandler</span><span style="font-size: 10pt; font-family: 宋体; color: #3f5fbf;">处理器类，对</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f7f9f;">&lt;student&gt;</span><span style="font-size: 10pt; font-family: 宋体; color: #3f5fbf;">元素进行处理。</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f5fbf;">*/</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">private</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">static</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">class</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> StudentHandler </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">implements</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">   ElementHandler {</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">public</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">void</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> .Start(ElementPath path) {</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element elt = path.getCurrent();</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.</span><em><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #0000c0;">out</span></em><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">.println(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #2a00ff;">"Found student: "</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> +   elt.attribut.ue(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #2a00ff;">"sn"</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">));</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f7f5f;">// </span><span style="font-size: 10pt; font-family: 宋体; color: #3f7f5f;">添加对子元素</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f7f5f;">&lt;name&gt;</span><span style="font-size: 10pt; font-family: 宋体; color: #3f7f5f;">的处理器。</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path.addHandler(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #2a00ff;">"name"</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">, </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">new</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> NameHandler());</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></div>   <div align="left">&nbsp;</div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">public</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">void</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> .End(ElementPath path) {</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f7f5f;">// </span><span style="font-size: 10pt; font-family: 宋体; color: #3f7f5f;">移除对子元素</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f7f5f;">&lt;name&gt;</span><span style="font-size: 10pt; font-family: 宋体; color: #3f7f5f;">的处理器。</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path.removeHandler(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #2a00ff;">"name"</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">);</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; }</span></div>   <div align="left">&nbsp;</div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f5fbf;">/**</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f5fbf;">*</span> <span style="font-size: 10pt; font-family: 宋体; color: #3f5fbf;">定义</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f5fbf;">NameHandler</span><span style="font-size: 10pt; font-family: 宋体; color: #3f5fbf;">处理器类，对</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f7f9f;">&lt;student&gt;</span><span style="font-size: 10pt; font-family: 宋体; color: #3f5fbf;">的</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f7f9f;">&lt;name&gt;</span><span style="font-size: 10pt; font-family: 宋体; color: #3f5fbf;">子元素进行处理。</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f5fbf;">*/</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">private</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">static</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">class</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> NameHandler </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">implements</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">   ElementHandler {</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">public</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">void</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> .Start(ElementPath path) {</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.</span><em><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #0000c0;">out</span></em><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">.println(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #2a00ff;">"path : "</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> +   path.getPath());</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></div>   <div align="left">&nbsp;</div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">public</span></strong> <strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">void</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> .End(ElementPath path) {</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element elt = path.getCurrent();</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f7f5f;">// </span><span style="font-size: 10pt; font-family: 宋体; color: #3f7f5f;">输出</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f7f5f;">&lt;name&gt;</span><span style="font-size: 10pt; font-family: 宋体; color: #3f7f5f;">元素的名字和它的文本内容。</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.</span><em><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #0000c0;">out</span></em><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">.println(elt.getName() + </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #2a00ff;">" : "</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> + elt.getText());</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></div>   <div align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; }</span></div>   <div><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">}</span></div></div><img src ="http://www.blogjava.net/youngturk/aggbug/380845.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-15 11:14 <a href="http://www.blogjava.net/youngturk/archive/2012/06/15/380845.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用accepter遍历所有XML子元素</title><link>http://www.blogjava.net/youngturk/archive/2012/06/14/380817.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 14 Jun 2012 14:45:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/14/380817.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/380817.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/14/380817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/380817.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/380817.html</trackback:ping><description><![CDATA[<div>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">public&nbsp;class&nbsp;Myvisitor&nbsp;extends&nbsp;VisitorSupport&nbsp;{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;/**<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;对于属性节点，打印属性的名字和值<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;visit(Attribute&nbsp;node)&nbsp;{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("attribute&nbsp;:&nbsp;"&nbsp;+&nbsp;node.getName()&nbsp;+&nbsp;"&nbsp;=&nbsp;"<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;node.getValue());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;/**<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;对于处理指令节点，打印处理指令目标和数据<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;visit(ProcessingInstruction&nbsp;node)&nbsp;{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("PI&nbsp;:&nbsp;"&nbsp;+&nbsp;node.getTarget()&nbsp;+&nbsp;"&nbsp;"<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;node.getData());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;/**<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;对于元素节点，判断是否只包含文本内容，如是，则打印标记的名字和&nbsp;元素的内容。如果不是，则只打印标记的名字<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;visit(Element&nbsp;node)&nbsp;{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(node.isTextOnly())<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("element&nbsp;:&nbsp;"&nbsp;+&nbsp;node.getName()&nbsp;+&nbsp;"&nbsp;=&nbsp;"<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;node.getText());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("--------"&nbsp;+&nbsp;node.getName()&nbsp;+&nbsp;"--------");<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;@Test<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;test()&nbsp;throws&nbsp;DocumentException&nbsp;{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SAXReader&nbsp;saxReader&nbsp;=&nbsp;new&nbsp;SAXReader();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;document&nbsp;=&nbsp;saxReader.read("src/book.xml");<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;dom4jParser.traversalDocumentByIterator();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.accept(new&nbsp;Myvisitor());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span></div></div><img src ="http://www.blogjava.net/youngturk/aggbug/380817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-14 22:45 <a href="http://www.blogjava.net/youngturk/archive/2012/06/14/380817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dom4j解析 字符串传唤成xml</title><link>http://www.blogjava.net/youngturk/archive/2012/06/14/380783.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 14 Jun 2012 06:44:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/14/380783.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/380783.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/14/380783.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/380783.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/380783.html</trackback:ping><description><![CDATA[<div><pre><span style="color: #000000;">d</span><br /></pre><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">oc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;DocumentHelper.parseText(xml);&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;将字符串转为XML</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />map.put(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">title</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;title);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator</span><span style="color: #000000; ">&lt;?&gt;</span><span style="color: #000000; ">&nbsp;iters&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;recordEle.elementIterator(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">script</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /><br />String&nbsp;title&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;recordEle.elementTextTrim(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">title</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;拿到head节点下的子节点title值</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">Iterator&nbsp;iters&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;map.keySet().iterator();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(iters.hasNext())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;key&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;iters.next().toString();&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;拿到键</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;val&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;map.get(key).toString();&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;拿到值</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(key&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;val);<br /><br /><br /><br /><div>List list = (document.selectNodes("/books/book/@show" )); // xpath解析<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Iterator iter = list.iterator();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;while(iter.hasNext()){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Attribute attribute = (Attribute)iter.next();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(attribute.getValue().equals("yes")){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;attribute.setValue("no");<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <div>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Element ownerElement = (Element)iter.next();</div><div>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Element dateElement = ownerElement.addElement("date");<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;dateElement.setText("2004-09-11");</div><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}</div><br /></span></div><pre> </pre></div><img src ="http://www.blogjava.net/youngturk/aggbug/380783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-14 14:44 <a href="http://www.blogjava.net/youngturk/archive/2012/06/14/380783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dom4j实例 的Xpath解析 转</title><link>http://www.blogjava.net/youngturk/archive/2012/06/14/380727.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 14 Jun 2012 00:56:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/14/380727.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/380727.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/14/380727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/380727.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/380727.html</trackback:ping><description><![CDATA[<div>books.xml:</div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">&lt;?</span><span style="color: #000000; ">xml&nbsp;version</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;encoding</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">UTF-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">?&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">books</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;!--</span><span style="color: #000000; ">This&nbsp;is&nbsp;a&nbsp;test&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;dom4j,&nbsp;jakoes,&nbsp;</span><span style="color: #000000; ">2007.7</span><span style="color: #000000; ">.</span><span style="color: #000000; ">19</span><span style="color: #000000; ">--&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">book&nbsp;show</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">yes</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;url</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">lucene.net</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">title&nbsp;id</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">456</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">Lucene&nbsp;Studing</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">title</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">book</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">book&nbsp;show</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">yes</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;url</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">dom4j.com</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">title&nbsp;id</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">123</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">Dom4j&nbsp;Tutorials</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">title</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">book</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">book&nbsp;show</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">no</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;url</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">spring.org</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">title&nbsp;id</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">789</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">Spring&nbsp;in&nbsp;Action</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">title</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">book</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">owner</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">O</span><span style="color: #000000; ">'</span><span style="color: #000000; ">Reilly&lt;/owner&gt;&nbsp;&nbsp;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">books</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp; <br /></span></div><br /><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;parseBooks(){&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SAXReader&nbsp;reader&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;SAXReader();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">try</span><span style="color: #000000; ">&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;doc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;reader.read(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">books.xml</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;root&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;doc.selectSingleNode(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/books</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;list&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;root.selectNodes(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">book[@url='dom4j.com']</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(Object&nbsp;o:list){&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;e&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(Element)&nbsp;o;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;show</span><span style="color: #000000; ">=</span><span style="color: #000000; ">e.attributeValue(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">show</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">show&nbsp;=&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;show);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">catch</span><span style="color: #000000; ">&nbsp;(Exception&nbsp;e)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />Document&nbsp;doc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;reader.read(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">books.xml</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);的意思是加载XML文档，此是可以用doc.asXML()来查看，它将打印整个xml文档。<br /><br />&nbsp;&nbsp;Node&nbsp;root&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;doc.selectSingleNode(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/books</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);是读取刚才加载的xml文档内的books节点下的所有内容，对于本例也是整个xml文档。<br />&nbsp;&nbsp;当然我们也可以加载</span><span style="color: #000000; ">/</span><span style="color: #000000; ">books下的某一个节点，如：book节点<br />Node&nbsp;root&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;doc.selectSingleNode(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/books/book</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />或：Node&nbsp;root&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;doc.selectSingleNode(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/books/*</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />注意：如果有多个book节点，它只会读取第一个<br />root.asXML()将打印：<br /></span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">book&nbsp;show</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">yes</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;url</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">lucene.net</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">title&nbsp;id</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">456</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">Lucene&nbsp;Studing</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">title</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">book</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;既然加载了这么多，那我怎么精确的得到我想要的节点呢，别急，看下面：<br />List&nbsp;list&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;root.selectNodes(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">book[@url='dom4j.com']</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />它的意思就是读取books节点下的book节点，且book的节点的url属性为dom4j.com<br />为什么使用list来接收呢，如果有两个book节点，且它们的url属性都为dom4j.com，此时就封闭到list里了。<br /><br />&nbsp;&nbsp;如果想读取books下的所有book节点，可以这样：<br />List&nbsp;list&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;root.selectNodes(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">book</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /><br />&nbsp;&nbsp;如果想读取books节点下的book节点下的title节点，可以这样：<br />List&nbsp;list2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;root.selectNodes(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">book[@url='dom4j.com']/title[@id='123']</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /><br />&nbsp;&nbsp;注意：selectNodes()参数的格式：<br />&nbsp;&nbsp;节点名[@属性名</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">属性值</span><span style="color: #000000; ">'</span><span style="color: #000000; ">]，如：book[@url</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">dom4j.com</span><span style="color: #000000; ">'</span><span style="color: #000000; ">]<br />&nbsp;&nbsp;如果有多个节点，用&#8220;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&#8221;分开，如：book[@url</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">dom4j.com</span><span style="color: #000000; ">'</span><span style="color: #000000; ">]</span><span style="color: #000000; ">/</span><span style="color: #000000; ">title[@id</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">123</span><span style="color: #000000; ">'</span><span style="color: #000000; ">]<br /><br />&nbsp;&nbsp;最近就是读取封闭在List里的内容了，可以用Node来读取，也可以用Element来转换。<br />attributeValue(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">属性</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)是读取该节点的属性值<br />getText()是读取节点的的内容。<br /></span></div><br /><br /><br /><br /><img src ="http://www.blogjava.net/youngturk/aggbug/380727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-14 08:56 <a href="http://www.blogjava.net/youngturk/archive/2012/06/14/380727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发dom4j除了需要其1.6.1jar包外，还需要jaxen-1.1.1jar</title><link>http://www.blogjava.net/youngturk/archive/2012/06/13/380711.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 13 Jun 2012 13:43:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/13/380711.html</guid><description><![CDATA[<div>开发dom4j除了需要其1.6.1jar包外，还需要jaxen-1.1.1jar</div>在jdk1.6下<br /><div><div style="text-indent: 21pt;">JAXEN<span style="font-family: 宋体;">（对</span>XPath<span style="font-family: 宋体;">的支持）：</span>http://dist.codehaus.org/jaxen/distributions/jaxen-1.1.1.zip</div></div><img src ="http://www.blogjava.net/youngturk/aggbug/380711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-13 21:43 <a href="http://www.blogjava.net/youngturk/archive/2012/06/13/380711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dom4J 递归解析</title><link>http://www.blogjava.net/youngturk/archive/2012/06/13/380683.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Wed, 13 Jun 2012 06:07:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/13/380683.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/380683.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/13/380683.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/380683.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/380683.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">book.xml:<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&lt;?</span><span style="color: #000000">xml&nbsp;version</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1.0</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;encoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">?&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">INVENTORY&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">INAtrabute</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">BOOK&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">textBook</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">TITLE</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;Adventures&nbsp;of&nbsp;Huckleberry&nbsp;Finn<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">FEN</span><span style="color: #000000">&gt;</span><span style="color: #000000">mast<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">MIAO</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;miao<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">MIAO</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">FEN</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">TITLE</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">AUTHOR</span><span style="color: #000000">&gt;</span><span style="color: #000000">Mark&nbsp;Twain<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">FEN</span><span style="color: #000000">&gt;</span><span style="color: #000000">mast1<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">MIAO</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;miao1<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">MIAO</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">FEN</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">AUTHOR</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">BINDING</span><span style="color: #000000">&gt;</span><span style="color: #000000">mass&nbsp;market&nbsp;paperback</span><span style="color: #000000">&lt;/</span><span style="color: #000000">BINDING</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">PAGES</span><span style="color: #000000">&gt;</span><span style="color: #000000">298</span><span style="color: #000000">&lt;/</span><span style="color: #000000">PAGES</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">price</span><span style="color: #000000">&gt;</span><span style="color: #000000">209yuan</span><span style="color: #000000">&lt;/</span><span style="color: #000000">price</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">BOOK</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">BOOK</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">TITLE&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">testName</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">Leaves&nbsp;of&nbsp;Grass</span><span style="color: #000000">&lt;/</span><span style="color: #000000">TITLE</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">AUTHOR</span><span style="color: #000000">&gt;</span><span style="color: #000000">Walt&nbsp;Whitman</span><span style="color: #000000">&lt;/</span><span style="color: #000000">AUTHOR</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">BINDING</span><span style="color: #000000">&gt;</span><span style="color: #000000">hardcover</span><span style="color: #000000">&lt;/</span><span style="color: #000000">BINDING</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">PAGES</span><span style="color: #000000">&gt;</span><span style="color: #000000">462</span><span style="color: #000000">&lt;/</span><span style="color: #000000">PAGES</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">BOOK</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">INVENTORY</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />解析代码：<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />@Test<br /><img id="Codehighlighter1_628_801_Open_Image" onclick="this.style.display='none'; Codehighlighter1_628_801_Open_Text.style.display='none'; Codehighlighter1_628_801_Closed_Image.style.display='inline'; Codehighlighter1_628_801_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_628_801_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_628_801_Closed_Text.style.display='none'; Codehighlighter1_628_801_Open_Image.style.display='inline'; Codehighlighter1_628_801_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;treeWalk()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;DocumentException</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_628_801_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_628_801_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SAXReader&nbsp;reader&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SAXReader();&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;document&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;reader.read(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(</span><span style="color: #000000">"</span><span style="color: #000000">src/book.xml</span><span style="color: #000000">"</span><span style="color: #000000">));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;element</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getRootElement();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treeWalk(element);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img id="Codehighlighter1_841_1098_Open_Image" onclick="this.style.display='none'; Codehighlighter1_841_1098_Open_Text.style.display='none'; Codehighlighter1_841_1098_Closed_Image.style.display='inline'; Codehighlighter1_841_1098_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_841_1098_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_841_1098_Closed_Text.style.display='none'; Codehighlighter1_841_1098_Open_Image.style.display='inline'; Codehighlighter1_841_1098_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;treeWalk(Element&nbsp;element)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_841_1098_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_841_1098_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_899_1095_Open_Image" onclick="this.style.display='none'; Codehighlighter1_899_1095_Open_Text.style.display='none'; Codehighlighter1_899_1095_Closed_Image.style.display='inline'; Codehighlighter1_899_1095_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_899_1095_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_899_1095_Closed_Text.style.display='none'; Codehighlighter1_899_1095_Open_Image.style.display='inline'; Codehighlighter1_899_1095_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;,&nbsp;size&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;element.nodeCount();i</span><span style="color: #000000">&lt;</span><span style="color: #000000">size;i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_899_1095_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_899_1095_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;node&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;element.node(i);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_967_1076_Open_Image" onclick="this.style.display='none'; Codehighlighter1_967_1076_Open_Text.style.display='none'; Codehighlighter1_967_1076_Closed_Image.style.display='inline'; Codehighlighter1_967_1076_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_967_1076_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_967_1076_Closed_Text.style.display='none'; Codehighlighter1_967_1076_Open_Image.style.display='inline'; Codehighlighter1_967_1076_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(node&nbsp;</span><span style="color: #0000ff">instanceof</span><span style="color: #000000">&nbsp;Element)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_967_1076_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_967_1076_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treeWalk((Element)node);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;value&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;node.getName();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(value);<br /><img id="Codehighlighter1_1081_1091_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1081_1091_Open_Text.style.display='none'; Codehighlighter1_1081_1091_Closed_Image.style.display='inline'; Codehighlighter1_1081_1091_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1081_1091_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1081_1091_Closed_Text.style.display='none'; Codehighlighter1_1081_1091_Open_Image.style.display='inline'; Codehighlighter1_1081_1091_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #0000ff">else</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1081_1091_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1081_1091_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><img src ="http://www.blogjava.net/youngturk/aggbug/380683.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-13 14:07 <a href="http://www.blogjava.net/youngturk/archive/2012/06/13/380683.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dom4j学习转</title><link>http://www.blogjava.net/youngturk/archive/2012/05/22/378810.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Tue, 22 May 2012 02:52:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/05/22/378810.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/378810.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/05/22/378810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/378810.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/378810.html</trackback:ping><description><![CDATA[<p>1.加载XML文档<br />SAXReader reader = new SAXReader();<br />Document doc = reader.read("src/book.xml");</p>
<p>2.获得根元素<br />Node root = doc.getRootElement();<br />&nbsp;&nbsp;&nbsp;&nbsp; 或 Element r = doc.getRootElement();</p>
<p>3.取得某节点的单个子节点<br />Element root = root.getRootElement();<br />Element memberElm=root.element("member");// "member"是节点名</p>
<p>4.取得节点的文字<br />String text=memberElm.getText();</p>
<p>5.取得某节点下名为"book"的所有字节点并进行遍历<br />Element r = doc.getRootElement();<br />List titles = r.elements("book");<br />for(int i=0;i&lt;titles.size();i++){<br />&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(((Element)titles.get(i)).asXML());<br />}<br />6.在某节点下添加子节点.<br />Element ageElm = newMemberElm.addElement("age");</p>
<p>7.设置节点文字.<br />ageElm.setText("29");</p>
<p>8.删除某节点.<br />parentElm.remove(childElm);// childElm是待删除的节点,parentElm是其父节点</p>
<p>三.属性相关.<br />1.取得某节点下的某属性<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element root=document.getRootElement();&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Attribute attribute=root.attribute("size");// 属性名name<br />2.取得属性的文字<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String text=attribute.getText();<br />也可以用:<br />String text2=root.element("name").attributeValue("firstname");这个是取得根节点下name字节点的属性firstname的值.</p>
<p>3.遍历某节点的所有属性<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element root=document.getRootElement();&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(Iterator it=root.attributeIterator();it.hasNext();){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Attribute attribute = (Attribute) it.next();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String text=attribute.getText();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(text);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />4.设置某节点的属性和文字.<br />newMemberElm.addAttribute("name", "sitinspring");<br />5.设置属性的文字<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Attribute attribute=root.attribute("name");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attribute.setText("sitinspring");<br />6.删除某属性<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Attribute attribute=root.attribute("size");// 属性名name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root.remove(attribute);<br />四.将文档写入XML文件.<br />1.文档中全为英文,不设置编码,直接写入的形式.<br />XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));<br />writer.write(document);<br />writer.close();<br />2.文档中含有中文,设置编码格式写入的形式.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OutputFormat format = OutputFormat.createPrettyPrint();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format.setEncoding("GBK");&nbsp;&nbsp;&nbsp; // 指定XML编码&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.write(document);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.close();<br />五.字符串与XML的转换<br />1.将字符串转化为XML<br />String text = "&lt;members&gt; &lt;member&gt;sitinspring&lt;/member&gt; &lt;/members&gt;";<br />Document document = DocumentHelper.parseText(text);<br />2.将文档或节点的XML转化为字符串.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAXReader reader = new SAXReader();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document document = reader.read(new File("input.xml"));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element root=document.getRootElement();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String docXmlText=document.asXML();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String rootXmlText=root.asXML();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element memberElm=root.element("member");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String memberXmlText=memberElm.asXML();<br />六.使用XPath快速找到节点.<br />读取的XML文档示例<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;projectDescription&gt;<br />&lt;name&gt;MemberManagement&lt;/name&gt;<br />&lt;comment&gt;&lt;/comment&gt;<br />&lt;projects&gt;<br />&nbsp;&nbsp;&nbsp; &lt;project&gt;PRJ1&lt;/project&gt;<br />&nbsp;&nbsp;&nbsp; &lt;project&gt;PRJ2&lt;/project&gt;<br />&nbsp;&nbsp;&nbsp; &lt;project&gt;PRJ3&lt;/project&gt;<br />&nbsp;&nbsp;&nbsp; &lt;project&gt;PRJ4&lt;/project&gt;<br />&lt;/projects&gt;<br />&lt;buildSpec&gt;<br />&nbsp;&nbsp;&nbsp; &lt;buildCommand&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;org.eclipse.jdt.core.javabuilder&lt;/name&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arguments&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/arguments&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/buildCommand&gt;<br />&lt;/buildSpec&gt;<br />&lt;natures&gt;<br />&nbsp;&nbsp;&nbsp; &lt;nature&gt;org.eclipse.jdt.core.javanature&lt;/nature&gt;<br />&lt;/natures&gt;<br />&lt;/projectDescription&gt;</p>
<p>使用XPath快速找到节点project.<br />public static void main(String[] args){<br />&nbsp;&nbsp;&nbsp; SAXReader reader = new SAXReader();<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; try{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document doc = reader.read(new File("sample.xml"));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List projects=doc.selectNodes("/projectDescription/projects/project");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Iterator it=projects.iterator();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(it.hasNext()){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element elm=(Element)it.next();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(elm.getText());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; catch(Exception ex){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex.printStackTrace();<br />&nbsp;&nbsp;&nbsp; }<br />}</p>
<p><br /></p><img src ="http://www.blogjava.net/youngturk/aggbug/378810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-05-22 10:52 <a href="http://www.blogjava.net/youngturk/archive/2012/05/22/378810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>