??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久噜噜噜久久人人看,亚洲精品国精品久久99热一,最新国产精品久久http://www.aygfsteel.com/youngturk/category/51769.htmlThe world is a fine place , and worth fighting for it.zh-cnWed, 10 Jul 2013 09:46:08 GMTWed, 10 Jul 2013 09:46:08 GMT60XML解析SAXhttp://www.aygfsteel.com/youngturk/archive/2013/07/10/401405.htmlyoungturkyoungturkWed, 10 Jul 2013 07:03:00 GMThttp://www.aygfsteel.com/youngturk/archive/2013/07/10/401405.htmlhttp://www.aygfsteel.com/youngturk/comments/401405.htmlhttp://www.aygfsteel.com/youngturk/archive/2013/07/10/401405.html#Feedback0http://www.aygfsteel.com/youngturk/comments/commentRss/401405.htmlhttp://www.aygfsteel.com/youngturk/services/trackbacks/401405.htmlpublic List xmlElements(String xmlDoc) {
        
//创徏一个新的字W串
        StringReader read = new StringReader(xmlDoc);
        
//创徏新的输入源SAX 解析器将使用 InputSource 对象来确定如何读?nbsp;XML 输入
        InputSource source = new InputSource(read);
        
//创徏一个新的SAXBuilder
        SAXBuilder sb = new SAXBuilder();
        List list 
= new ArrayList();
        
try {
            
//通过输入源构造一个Document
            Document doc = sb.build(source);
            
//取的根元?/span>
            Element root = doc.getRootElement();
            System.out.println(root.getName());
//输出根元素的名称Q测试)
            
//得到根元素所有子元素的集?/span>
            List jiedian = root.getChildren();
            
//获得XML中的命名I间QXML中未定义可不写)
            Namespace ns = root.getNamespace();
            Element et 
= null;
            DataModel dataModel 
= new DataModel();
            Collections c ;
            Ctnfee ctnfee 
= null;
            
for(int i=0;i<jiedian.size();i++){
                et 
= (Element) jiedian.get(i);//循环依次得到子元?/span>
                ctnfee = new Ctnfee();
                
/**//*
                 * 无命名空间定义时
                 * et.getChild("users_id").getText();
                 * et.getChild("users_address",ns).getText()
                 
*/

                
/*System.out.println(et.getChild("users_id",ns).getText());
                System.out.println(et.getChild("users_address",ns).getText());
*/

                System.out.println(et.getChild(
"p_id",ns).getText());
                System.out.println(et.getChild(
"ctnno",ns).getText());
                ctnfee.setP_id(et.getChild(
"p_id",ns).getText());
                ctnfee.setCtnno(et.getChild(
"ctnno",ns).getText());
                ctnfee.setFee_type(et.getChild(
"fee_type",ns).getText());
                ctnfee.setStart_time(et.getChild(
"start_time",ns).getText());
                ctnfee.setEnd_time(et.getChild(
"end_time",ns).getText());
                ctnfee.setFee(Double.parseDouble(et.getChild(
"fee",ns).getText()));
                ctnfee.setFee_count(Double.parseDouble(et.getChild(
"fee_count",ns).getText()));
                ctnfee.setCpid(et.getChild(
"cpid",ns).getText());
                ctnfee.setFee_name(et.getChild(
"fee_name",ns).getText());
                ctnfee.setFee_rate_id(Double.parseDouble(et.getChild(
"fee_rate_id",ns).getText()));
                ctnfee.setJffs(et.getChild(
"jffs",ns).getText());
                ctnfee.setIf_hand(et.getChild(
"if_hand",ns).getText());
                ctnfee.setSfid(et.getChild(
"sfid",ns).getText());
                ctnfee.setWt_company(et.getChild(
"wt_company",ns).getText());
                ctnfee.setOpid(et.getChild(
"opid",ns).getText());
                ctnfee.setCy(et.getChild(
"cy",ns).getText());
                ctnfee.setIf_bf(et.getChild(
"if_bf",ns).getText());
                ctnfee.setDays_count(et.getChild(
"days_count",ns).getText());
                ctnfee.setIf_collect(Double.parseDouble(et.getChild(
"if_collect",ns).getText()));
                ctnfee.setIf_dd(et.getChild(
"if_dd",ns).getText());
                ctnfee.setDd_fee_name(et.getChild(
"dd_fee_name",ns).getText());
                ctnfee.setSpec_sign(et.getChild(
"spec_sign",ns).getText());
                
                list.add(ctnfee);
                counttotal 
= counttotal +Double.parseDouble(et.getChild("fee_count",ns).getText());
            }

            
/**//*
             * 如要?lt;row>下的子元素的名称
             
*/

            et 
= (Element) jiedian.get(0);
            List zjiedian 
= et.getChildren();
            
for(int j=0;j<zjiedian.size();j++){
                Element xet 
= (Element) zjiedian.get(j);
                System.out.println(xet.getName());
            }

        }
 catch (JDOMException e) {
            
// TODO 自动生成 catch ?/span>
            e.printStackTrace();
        }
 catch (IOException e) {
            
// TODO 自动生成 catch ?/span>
            e.printStackTrace();
        }

        
return list;
    }


youngturk 2013-07-10 15:03 发表评论
]]>
JAVA解析XML格式字符?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/youngturk/archive/2013/04/08/397540.html</guid><wfw:comment>http://www.aygfsteel.com/youngturk/comments/397540.html</wfw:comment><comments>http://www.aygfsteel.com/youngturk/archive/2013/04/08/397540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/youngturk/comments/commentRss/397540.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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 />    public List xmlElements(String xmlDoc) {<br />        //创徏一个新的字W串<br />        StringReader read = new StringReader(xmlDoc);<br />        //创徏新的输入源SAX 解析器将使用 InputSource 对象来确定如何读?XML 输入<br />        InputSource source = new InputSource(read);<br />        //创徏一个新的SAXBuilder<br />        SAXBuilder sb = new SAXBuilder();<br />        try {<br />            //通过输入源构造一个Document<br />            Document doc = sb.build(source);<br />            //取的根元?br />            Element root = doc.getRootElement();<br />            System.out.println(root.getName());//输出根元素的名称Q测试)<br />            //得到根元素所有子元素的集?br />            List jiedian = root.getChildren();<br />            //获得XML中的命名I间QXML中未定义可不写)<br />            Namespace ns = root.getNamespace();<br />            Element et = null;<br />            for(int i=0;i<jiedian.size();i++){<br />                et = (Element) jiedian.get(i);//循环依次得到子元?br />                /**//*<br />                 * 无命名空间定义时<br />                 * et.getChild("users_id").getText();<br />                 * et.getChild("users_address",ns).getText()<br />                 */<br />                /*System.out.println(et.getChild("users_id",ns).getText());<br />                System.out.println(et.getChild("users_address",ns).getText());*/<br />                System.out.println(et.getChild("p_id",ns).getText());<br />                System.out.println(et.getChild("ctnno",ns).getText());<br />            }<br />            /**//*<br />             * 如要?lt;row>下的子元素的名称<br />             */<br />            et = (Element) jiedian.get(0);<br />            List zjiedian = et.getChildren();<br />            for(int j=0;j<zjiedian.size();j++){<br />                Element xet = (Element) zjiedian.get(j);<br />                System.out.println(xet.getName());<br />            }<br />        } catch (JDOMException e) {<br />            // TODO 自动生成 catch ?br />            e.printStackTrace();<br />        } catch (IOException e) {<br />            // TODO 自动生成 catch ?br />            e.printStackTrace();<br />        }<br />        return null;<br />    }<br />    public static void main(String[] args){<br />     TestXML doc = new TestXML();<br />        String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+<br />        "<Result xmlns=\"<a +<br />           "<row resultcount=\"1\">"+<br />              "<users_id>1001     </users_id>"+<br />              "<users_name>wangwei   </users_name>"+<br />              "<users_group>80        </users_group>"+<br />              "<users_address>1001?nbsp;  </users_address>"+<br />           "</row>"+<br />           "<row resultcount=\"1\">"+<br />              "<users_id>1002     </users_id>"+<br />              "<users_name>wangwei   </users_name>"+<br />              "<users_group>80        </users_group>"+<br />              "<users_address>1002?nbsp;  </users_address>"+<br />           "</row>"+<br />        "</Result>";<br />        String xml1 = "<?xml version=\"1.0\" encoding=\"UTF-16LE\" standalone=\"no\"?>" +<br />          "<d_fsgl_fee_count_for_xml>" +<br />          "  <d_fsgl_fee_count_for_xml_row>" +<br />          "  <p_id>JD1302130002</p_id>" +<br />          "  <ctnno>CXDU1499549</ctnno>" +<br />          "  <fee_type>?lt;/fee_type>" +<br />          "  <start_time>2013-02-09 00:00:00</start_time>" +<br />          "  <end_time>2013-02-13 00:00:00</end_time>" +<br />          "  <fee>4</fee>" +<br />          "  <fee_count>16</fee_count>" +<br />          "  <cpid></cpid>" +<br />          "  <fee_name>堆存?lt;/fee_name>" +<br />          "  <fee_rate_id></fee_rate_id>" +<br />          "  <jffs>1</jffs>" +<br />          "  <if_hand>0</if_hand>" +<br />          "  <sfid>FDZT1302180104</sfid>" +<br />          "  <wt_company>QT</wt_company>" +<br />          "  <opid>928</opid>" +<br />          "  <cy>D</cy>" +<br />          "  <if_bf></if_bf>" +<br />          "  <days_count>4</days_count>" +<br />          "  <if_collect>1</if_collect>" +<br />          "  <if_dd></if_dd>" +<br />          "  <dd_fee_name></dd_fee_name>" +<br />          "  <spec_sign>五洲代垫</spec_sign>" +<br />          " </d_fsgl_fee_count_for_xml_row>" +<br />          " <d_fsgl_fee_count_for_xml_row>" +<br />          "  <p_id>JD1302130002</p_id>" +<br />          "  <ctnno>CXDU1499549</ctnno>" +<br />          "  <fee_type>?lt;/fee_type>" +<br />          "  <start_time>2013-02-13 00:00:00</start_time>" +<br />          "  <end_time>2013-02-20 00:00:00</end_time>" +<br />          "  <fee>4</fee>" +<br />          "  <fee_count>32</fee_count>" +<br />          "  <cpid></cpid>" +<br />          "  <fee_name>堆存?lt;/fee_name>" +<br />          "  <fee_rate_id>67</fee_rate_id>" +<br />          "  <jffs>1</jffs>" +<br />          "  <if_hand>0</if_hand>" +<br />          "  <sfid>FDZT1302180104</sfid>" +<br />          "  <wt_company>QT</wt_company>" +<br />          "  <opid>928</opid>" +<br />          "  <cy>D</cy>" +<br />          "  <if_bf></if_bf>" +<br />          "  <days_count>8</days_count>" +<br />          "  <if_collect>1</if_collect>" +<br />          "  <if_dd></if_dd>" +<br />          "  <dd_fee_name></dd_fee_name>" +<br />          "  <spec_sign></spec_sign>" +<br />          " </d_fsgl_fee_count_for_xml_row>"  +<br />          "</d_fsgl_fee_count_for_xml>";<br />        doc.xmlElements(xml1);<br />    }<br />}</p> <p> </p><img src ="http://www.aygfsteel.com/youngturk/aggbug/397540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/youngturk/" target="_blank">youngturk</a> 2013-04-08 17:20 <a href="http://www.aygfsteel.com/youngturk/archive/2013/04/08/397540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dom4j全部实例http://www.aygfsteel.com/youngturk/archive/2012/06/15/380845.htmlyoungturkyoungturkFri, 15 Jun 2012 03:14:00 GMThttp://www.aygfsteel.com/youngturk/archive/2012/06/15/380845.htmlhttp://www.aygfsteel.com/youngturk/comments/380845.htmlhttp://www.aygfsteel.com/youngturk/archive/2012/06/15/380845.html#Feedback0http://www.aygfsteel.com/youngturk/comments/commentRss/380845.htmlhttp://www.aygfsteel.com/youngturk/services/trackbacks/380845.html
Attribute
Attribute定义了XML的属?/div>
Branch
Branch够包含子节点的节点如XML元素(Element)和文?Docuemnts)定义了一个公q行ؓQ?/div>
CDATA
CDATA 定义了XML CDATA 区域
CharacterData是一个标识接口,标识Z字符的节炏V如CDATAQComment, Text.
Comment
Comment 定义了XML注释的行?/div>
Document
定义了XML文档
DocumentType
DocumentType 定义XML DOCTYPE声明
Element
Element定义XML 元素
ElementHandler
ElementHandler定义?Element 对象的处理器
ElementPath
?ElementHandler 使用Q用于取得当前正在处理的路径层次信息
Entity
Entity定义 XML entity
Node
Node为所有的dom4j中XML节点定义了多态行?/div>
NodeFilter 定义了在dom4j节点中生的一个o镜或谓词的行为(predicateQ?/div>
ProcessingInstruction
ProcessingInstruction 定义 XML 处理指o.
Text
Text 定义XML 文本节点.
Visitor
Visitor 用于实现Visitor模式.
XPath
XPath
要想弄懂q套接口Q关键的是要明白接口的承关p:
  • interface java.lang.Cloneable
    • interface org.dom4j.Node
      • interface org.dom4j.Attribute
      • interface org.dom4j.Branch
        • interface org.dom4j.Document
        • interface org.dom4j.Element
      • interface org.dom4j.CharacterData
        • interface org.dom4j.CDATA
        • interface org.dom4j.Comment
        • interface org.dom4j.Text
      • interface org.dom4j.DocumentType
      • interface org.dom4j.Entity
      • interface org.dom4j.ProcessingInstruction
Q. dq解析XML文档Q?/div>
dXML文档主要依赖于org.dom4j.io包,其中提供DOMReader和SAXReader两类不同方式Q而调用方式是一L。这是依靠接口的好处?/div>
 
    // 从文件读取XMLQ输入文件名Q返回XML文档
    public Document read(String fileName) throws MalformedURLException, DocumentException {
       SAXReader reader = new SAXReader();
       Document document = reader.read(new File(fileName));
       return document;
    }
 
    
   
其中Qreader的readҎ是重载的Q可以从InputStream, File, Url{多U不同的源来d。得到的Document对象带表了整个XML。根据本ql验Q读取的字符~码是按照XML文g头定义的~码来{换。如果遇Cؕ码问题,注意要把各处的编码名UC持一致即可?br />
Q.    取得Root节点
d后的W二步,是得到Root节点。熟悉XML的h都知道,一切XML分析都是从Root元素开始的?/div>
 
   public Element getRootElement(Document doc){
       return doc.getRootElement();
    }
 
Q.    遍历XML?/div>
DOM4J提供臛_3U遍历节点的ҎQ?/div>
1) 枚D(Iterator)
 
    // 枚D所有子节点
    for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
       Element element = (Element) i.next();
       // do something
    }
    // 枚D名称为foo的节?/div>
    for ( Iterator i = root.elementIterator(foo); i.hasNext();) {
       Element foo = (Element) i.next();
       // do something
    }
    // 枚D属?/div>
    for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
       Attribute attribute = (Attribute) i.next();
       // do something
    }

2)递归
递归也可以采用Iterator作ؓ枚D手段Q但文档中提供了另外的做?/div>
 
    public void treeWalk() {
       treeWalk(getRootElement());
    }
    public void treeWalk(Element element) {
       for (int i = 0, size = element.nodeCount(); i < size; i++)     {
           Node node = element.node(i);
           if (node instanceof Element) {
              treeWalk((Element) node);
           } else { // do something....
           }
       }
}
 

3) Visitor模式
最令h兴奋的是DOM4J对Visitor的支持,q样可以大大~减代码量,q且清楚易懂。了解设计模式的人都知道QVisitor是GOF设计模式之一。其主要原理是两种cM怿有对方的引用Qƈ且一U作为Visitor去访问许多Visitable。我们来看DOM4J中的Visitor模式(快速文档中没有提供)
只需要自定一个类实现Visitor接口卛_?/div>
 
        public class MyVisitor extends VisitorSupport {
           public void visit(Element element){
               System.out.println(element.getName());
           }
           public void visit(Attribute attr){
               System.out.println(attr.getName());
           }
        }
 
        调用Q?nbsp; root.accept(new MyVisitor())
    Visitor接口提供多种Visit()的重载,ҎXML不同的对象,采用不同的方式来访问。上面是l出的Element和Attribute的简单实玎ͼ一般比较常用的是q两个。VisitorSupport是DOM4J提供的默认适配器,Visitor接口的Default Adapter模式Q这个模式给Z各种visit(*)的空实现Q以便简化代码?/div>
    注意Q这个Visitor是自动遍历所有子节点的。如果是root.accept(MyVisitor)Q将遍历子节炏V我W一ơ用的时候,认ؓ是需要自己遍历,便在递归中调用VisitorQ结果可惌知?/div>
4. XPath支持
    DOM4J对XPath有良好的支持Q如讉K一个节点,可直接用XPath选择?/div>
 
   public void bar(Document document) {
        List list = document.selectNodes( //foo/bar );
        Node node = document.selectSingleNode(//foo/bar/author);
        String name = node.valueOf( @name );
     }
 
    例如Q如果你x找XHTML文档中所有的链接,下面的代码可以实玎ͼ
 
    public void findLinks(Document document) throws DocumentException {
        List list = document.selectNodes( //a/@href );
        for (Iterator iter = list.iterator(); iter.hasNext(); ) {
            Attribute attribute = (Attribute) iter.next();
            String url = attribute.getValue();
        }
     }
 

5. 字符串与XML的{?/div>
有时候经常要用到字符串{换ؓXML或反之,
 
    // XML转字W串
  Document document = ...;
    String text = document.asXML();
// 字符串{XML
    String text = <person> <name>James</name> </person>;
    Document document = DocumentHelper.parseText(text);
 

6 用XSLT转换XML
 
   public Document styleDocument(
       Document document,
       String stylesheet
    ) throws Exception {
    // load the transformer using JAXP
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(
       new StreamSource( stylesheet )
    );
    // now lets style the given document
    DocumentSource source = new DocumentSource( document );
    DocumentResult result = new DocumentResult();
    transformer.transform( source, result );
    // return the transformed document
    Document transformedDoc = result.getDocument();
    return transformedDoc;
}
 

7. 创徏XML
  一般创建XML是写文g前的工作Q这像StringBuffer一样容易?/div>
 
    public Document createDocument() {
       Document document = DocumentHelper.createDocument();
       Element root = document.addElement(root);
       Element author1 =
           root
              .addElement(author)
              .addAttribute(name, James)
              .addAttribute(location, UK)
              .addText(James Strachan);
       Element author2 =
           root
              .addElement(author)
              .addAttribute(name, Bob)
              .addAttribute(location, US)
              .addText(Bob McWhirter);
       return document;
    }
 

8. 文g输出
    一个简单的输出Ҏ是将一个Document或Q何的Node通过writeҎ输出
 
    FileWriter out = new FileWriter( foo.xml );
    document.write(out);
 
  如果你想改变输出的格式,比如化输出或羃减格式,可以用XMLWriterc?/div>
 
    public void write(Document document) throws IOException {
       // 指定文g
       XMLWriter writer = new XMLWriter(
           new FileWriter( output.xml )
       );
       writer.write( document );
       writer.close();
       // 化格式
       OutputFormat format = OutputFormat.createPrettyPrint();
       writer = new XMLWriter( System.out, format );
       writer.write( document );
       // ~减格式
       format = OutputFormat.createCompactFormat();
       writer = new XMLWriter( System.out, format );
       writer.write( document );
    }
 
5.使用ElementHandler
XmlHandler.java
import java.io.File;
 
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.ElementHandler;
import org.dom4j.ElementPath;
import org.dom4j.io.SAXReader;
 
public class XmlHandler {
    public static void main(String[] args) {
       SAXReader saxReader = new SAXReader();
       File file = new File("students.xml");
       try {
           // d一?/span>ElementHandler实例?/span>
           saxReader.addHandler("/students/student", new StudentHandler());
           saxReader.read(file);
 
       } catch (DocumentException e) {
           System.out.println(e.getMessage());
       }
    }
 
    /**
     * 定义StudentHandler处理器类Q对<student>元素q行处理?/span>
     */
    private static class StudentHandler implements ElementHandler {
       public void .Start(ElementPath path) {
           Element elt = path.getCurrent();
           System.out.println("Found student: " + elt.attribut.ue("sn"));
           // d对子元素<name>的处理器?/span>
           path.addHandler("name", new NameHandler());
       }
 
       public void .End(ElementPath path) {
           // U除对子元素<name>的处理器?/span>
           path.removeHandler("name");
       }
    }
 
    /**
     * 定义NameHandler处理器类Q对<student>?/span><name>子元素进行处理?/span>
     */
    private static class NameHandler implements ElementHandler {
       public void .Start(ElementPath path) {
           System.out.println("path : " + path.getPath());
       }
 
       public void .End(ElementPath path) {
           Element elt = path.getCurrent();
           // 输出<name>元素的名字和它的文本内容?/span>
           System.out.println(elt.getName() + " : " + elt.getText());
       }
    }
}


youngturk 2012-06-15 11:14 发表评论
]]>使用accepter遍历所有XML子元?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/youngturk/archive/2012/06/14/380817.html</guid><wfw:comment>http://www.aygfsteel.com/youngturk/comments/380817.html</wfw:comment><comments>http://www.aygfsteel.com/youngturk/archive/2012/06/14/380817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/youngturk/comments/commentRss/380817.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><span style="color: #000000">public class Myvisitor extends VisitorSupport {<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    /**<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />     * 对于属性节点,打印属性的名字和?br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />     */<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    public void visit(Attribute node) {<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        System.out.println("attribute : " + node.getName() + " = "<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />               + node.getValue());<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    }<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    /**<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />     * 对于处理指o节点Q打印处理指令目标和数据<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />     */<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    public void visit(ProcessingInstruction node) {<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        System.out.println("PI : " + node.getTarget() + " "<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />               + node.getData());<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    }<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    /**<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />     * 对于元素节点Q判断是否只包含文本内容Q如是,则打印标记的名字?nbsp;元素的内宏V如果不是,则只打印标记的名?br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />     */<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    public void visit(Element node) {<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        if (node.isTextOnly())<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />           System.out.println("element : " + node.getName() + " = "<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />                  + node.getText());<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        else<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />           System.out.println("--------" + node.getName() + "--------");<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    }<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /> <br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    @Test<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    public void test() throws DocumentException {<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        SAXReader saxReader = new SAXReader();<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Document document = saxReader.read("src/book.xml");<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        // dom4jParser.traversalDocumentByIterator();<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        document.accept(new Myvisitor());<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />     }<br /><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />    </span></div></div><img src ="http://www.aygfsteel.com/youngturk/aggbug/380817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/youngturk/" target="_blank">youngturk</a> 2012-06-14 22:45 <a href="http://www.aygfsteel.com/youngturk/archive/2012/06/14/380817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dom4j解析 字符串传唤成xmlhttp://www.aygfsteel.com/youngturk/archive/2012/06/14/380783.htmlyoungturkyoungturkThu, 14 Jun 2012 06:44:00 GMThttp://www.aygfsteel.com/youngturk/archive/2012/06/14/380783.htmlhttp://www.aygfsteel.com/youngturk/comments/380783.htmlhttp://www.aygfsteel.com/youngturk/archive/2012/06/14/380783.html#Feedback0http://www.aygfsteel.com/youngturk/comments/commentRss/380783.htmlhttp://www.aygfsteel.com/youngturk/services/trackbacks/380783.html
d
oc = DocumentHelper.parseText(xml); // 字W串转ؓXML

map.put(
"title", title);
                
                Iterator
<?> iters = recordEle.elementIterator("script");

String title 
= recordEle.elementTextTrim("title"); // 拿到head节点下的子节点title?/span>
Iterator iters = map.keySet().iterator();
        
while (iters.hasNext()) {
            String key 
= iters.next().toString(); // 拿到?/span>
            String val = map.get(key).toString(); // 拿到?/span>
            System.out.println(key + "=" + val);



List list = (document.selectNodes("/books/book/@show" )); // xpath解析
            Iterator iter = list.iterator();
            while(iter.hasNext()){
                Attribute attribute = (Attribute)iter.next();
                if(attribute.getValue().equals("yes")){
                attribute.setValue("no");
                }
               
                Element ownerElement = (Element)iter.next();
                Element dateElement = ownerElement.addElement("date");
                dateElement.setText("2004-09-11");

            }

 


youngturk 2012-06-14 14:44 发表评论
]]>dom4j实例 的Xpath解析 ?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/youngturk/archive/2012/06/14/380727.html</guid><wfw:comment>http://www.aygfsteel.com/youngturk/comments/380727.html</wfw:comment><comments>http://www.aygfsteel.com/youngturk/archive/2012/06/14/380727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/youngturk/comments/commentRss/380727.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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; "><?</span><span style="color: #000000; ">xml 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; "> 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; ">?></span><span style="color: #000000; ">  <br />    </span><span style="color: #000000; "><</span><span style="color: #000000; ">books</span><span style="color: #000000; ">></span><span style="color: #000000; ">  <br />        </span><span style="color: #000000; "><!--</span><span style="color: #000000; ">This is a test </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> dom4j, jakoes, </span><span style="color: #000000; ">2007.7</span><span style="color: #000000; ">.</span><span style="color: #000000; ">19</span><span style="color: #000000; ">--></span><span style="color: #000000; ">  <br />        </span><span style="color: #000000; "><</span><span style="color: #000000; ">book 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; "> 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; ">></span><span style="color: #000000; ">  <br />            </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; ">456</span><span style="color: #000000; ">"</span><span style="color: #000000; ">></span><span style="color: #000000; ">Lucene Studing</span><span style="color: #000000; "></</span><span style="color: #000000; ">title</span><span style="color: #000000; ">></span><span style="color: #000000; ">  <br />        </span><span style="color: #000000; "></</span><span style="color: #000000; ">book</span><span style="color: #000000; ">></span><span style="color: #000000; ">  <br />        </span><span style="color: #000000; "><</span><span style="color: #000000; ">book 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; "> 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; ">  <br />            </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; ">></span><span style="color: #000000; ">Dom4j Tutorials</span><span style="color: #000000; "></</span><span style="color: #000000; ">title</span><span style="color: #000000; ">></span><span style="color: #000000; ">  <br />        </span><span style="color: #000000; "></</span><span style="color: #000000; ">book</span><span style="color: #000000; ">></span><span style="color: #000000; ">  <br />        </span><span style="color: #000000; "><</span><span style="color: #000000; ">book 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; "> 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; ">></span><span style="color: #000000; ">  <br />            </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; ">789</span><span style="color: #000000; ">"</span><span style="color: #000000; ">></span><span style="color: #000000; ">Spring in Action</span><span style="color: #000000; "></</span><span style="color: #000000; ">title</span><span style="color: #000000; ">></span><span style="color: #000000; ">  <br />        </span><span style="color: #000000; "></</span><span style="color: #000000; ">book</span><span style="color: #000000; ">></span><span style="color: #000000; ">  <br />        </span><span style="color: #000000; "><</span><span style="color: #000000; ">owner</span><span style="color: #000000; ">></span><span style="color: #000000; ">O</span><span style="color: #000000; ">'</span><span style="color: #000000; ">Reilly</owner>  </span><span style="color: #000000; "><br /></span><span style="color: #000000; ">    </span><span style="color: #000000; "></</span><span style="color: #000000; ">books</span><span style="color: #000000; ">></span><span style="color: #000000; ">  <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; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> parseBooks(){  <br />         <br />        SAXReader reader </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SAXReader();  <br />        </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {  <br />            Document doc </span><span style="color: #000000; ">=</span><span style="color: #000000; "> reader.read(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">books.xml</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);  <br />            Node root </span><span style="color: #000000; ">=</span><span style="color: #000000; "> doc.selectSingleNode(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/books</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);  <br />            List list </span><span style="color: #000000; ">=</span><span style="color: #000000; "> 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 />             <br />            </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(Object o:list){  <br />                 <br />                Element e </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (Element) o;  <br />                String 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; ">);  <br />                System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">show = </span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">+</span><span style="color: #000000; "> show);  <br />            }  <br />            <br />        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (Exception e) {  <br />            e.printStackTrace();  <br />        }  <br />    }  <br />Document doc </span><span style="color: #000000; ">=</span><span style="color: #000000; "> 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文档Q此是可以用doc.asXML()来查看,它将打印整个xml文档?br /><br />  Node root </span><span style="color: #000000; ">=</span><span style="color: #000000; "> 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 />  当然我们也可以加?/span><span style="color: #000000; ">/</span><span style="color: #000000; ">books下的某一个节点,如:book节点<br />Node root </span><span style="color: #000000; ">=</span><span style="color: #000000; "> 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 root </span><span style="color: #000000; ">=</span><span style="color: #000000; "> doc.selectSingleNode(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/books/*</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />注意Q如果有多个book节点Q它只会dW一?br />root.asXML()打华ͼ<br /></span><span style="color: #000000; "><</span><span style="color: #000000; ">book 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; "> 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; ">></span><span style="color: #000000; "><br />        </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; ">456</span><span style="color: #000000; ">"</span><span style="color: #000000; ">></span><span style="color: #000000; ">Lucene Studing</span><span style="color: #000000; "></</span><span style="color: #000000; ">title</span><span style="color: #000000; ">></span><span style="color: #000000; "><br /></span><span style="color: #000000; "></</span><span style="color: #000000; ">book</span><span style="color: #000000; ">></span><span style="color: #000000; "><br /><br />  既然加蝲了这么多Q那我怎么_的得到我惌的节点呢Q别急,看下面:<br />List list </span><span style="color: #000000; ">=</span><span style="color: #000000; "> 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节点Q且book的节点的url属性ؓdom4j.com<br />Z么用list来接收呢Q如果有两个book节点Q且它们的url属性都为dom4j.comQ此时就闭到list里了?br /><br />  如果惌取books下的所有book节点Q可以这P<br />List list </span><span style="color: #000000; ">=</span><span style="color: #000000; "> 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 />  如果惌取books节点下的book节点下的title节点Q可以这P<br />List list2 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> 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 />  注意QselectNodes()参数的格式:<br />  节点名[@属性名</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; ">]Q如Qbook[@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 />  如果有多个节点,?#8220;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">”分开Q如Qbook[@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 />  最q就是读取封闭在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()是读取节点的的内宏V?br /></span></div><br /><br /><br /><br /><img src ="http://www.aygfsteel.com/youngturk/aggbug/380727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/youngturk/" target="_blank">youngturk</a> 2012-06-14 08:56 <a href="http://www.aygfsteel.com/youngturk/archive/2012/06/14/380727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发dom4j除了需要其1.6.1jar包外Q还需要jaxen-1.1.1jarhttp://www.aygfsteel.com/youngturk/archive/2012/06/13/380711.htmlyoungturkyoungturkWed, 13 Jun 2012 13:43:00 GMThttp://www.aygfsteel.com/youngturk/archive/2012/06/13/380711.html开发dom4j除了需要其1.6.1jar包外Q还需要jaxen-1.1.1jar
在jdk1.6?br />
JAXENQ对XPath的支持)Q?/span>http://dist.codehaus.org/jaxen/distributions/jaxen-1.1.1.zip


youngturk 2012-06-13 21:43 发表评论
]]>dom4J 递归解析http://www.aygfsteel.com/youngturk/archive/2012/06/13/380683.htmlyoungturkyoungturkWed, 13 Jun 2012 06:07:00 GMThttp://www.aygfsteel.com/youngturk/archive/2012/06/13/380683.htmlhttp://www.aygfsteel.com/youngturk/comments/380683.htmlhttp://www.aygfsteel.com/youngturk/archive/2012/06/13/380683.html#Feedback0http://www.aygfsteel.com/youngturk/comments/commentRss/380683.htmlhttp://www.aygfsteel.com/youngturk/services/trackbacks/380683.htmlbook.xml:
<?xml version="1.0" encoding="UTF-8"?>
<INVENTORY name="INAtrabute">
    
<BOOK name="textBook">
        
<TITLE>
            The Adventures of Huckleberry Finn
            
<FEN>mast
                
<MIAO>
                miao
                
</MIAO>
            
</FEN>
        
</TITLE>
        
<AUTHOR>Mark Twain
            
<FEN>mast1
                
<MIAO>
                miao1
                
</MIAO>
            
</FEN>
        
</AUTHOR>
        
<BINDING>mass market paperback</BINDING>
        
<PAGES>298</PAGES>
    
<price>209yuan</price>
    
</BOOK>
    
<BOOK>
        
<TITLE name="testName">Leaves of Grass</TITLE>
        
<AUTHOR>Walt Whitman</AUTHOR>
        
<BINDING>hardcover</BINDING>
        
<PAGES>462</PAGES>
    
</BOOK>
</INVENTORY>

解析代码Q?br />@Test
    
public void treeWalk() throws DocumentException{
        SAXReader reader 
= new SAXReader(); 
        Document document 
= reader.read(new File("src/book.xml"));
        Element element
= document.getRootElement();
        treeWalk(element);
        
    }

    
public void treeWalk(Element element){
        
for(int i = 0 , size = element.nodeCount();i<size;i++){
            Node node 
= element.node(i);
            
            
if(node instanceof Element){
                treeWalk((Element)node);
                String value 
= node.getName();
                System.out.println(value);
            }
else{
                
            }

        }

    }


youngturk 2012-06-13 14:07 发表评论
]]>dom4j学习?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/youngturk/archive/2012/05/22/378810.html</guid><wfw:comment>http://www.aygfsteel.com/youngturk/comments/378810.html</wfw:comment><comments>http://www.aygfsteel.com/youngturk/archive/2012/05/22/378810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/youngturk/comments/commentRss/378810.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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 />     ?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"的所有字节点q进行遍?br />Element r = doc.getRootElement();<br />List titles = r.elements("book");<br />for(int i=0;i<titles.size();i++){<br />     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 />            Element root=document.getRootElement();    <br />            Attribute attribute=root.attribute("size");// 属性名name<br />2.取得属性的文字<br />            String text=attribute.getText();<br />也可以用:<br />String text2=root.element("name").attributeValue("firstname");q个是取得根节点下name字节点的属性firstname的?</p> <p>3.遍历某节点的所有属?br />            Element root=document.getRootElement();    <br />            for(Iterator it=root.attributeIterator();it.hasNext();){<br />                Attribute attribute = (Attribute) it.next();<br />                String text=attribute.getText();<br />                System.out.println(text);<br />            }<br />4.讄某节点的属性和文字.<br />newMemberElm.addAttribute("name", "sitinspring");<br />5.讄属性的文字<br />            Attribute attribute=root.attribute("name");<br />            attribute.setText("sitinspring");<br />6.删除某属?br />            Attribute attribute=root.attribute("size");// 属性名name<br />            root.remove(attribute);<br />?文档写入XML文g.<br />1.文档中全?不设|编?直接写入的Ş?<br />XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));<br />writer.write(document);<br />writer.close();<br />2.文档中含有中?讄~码格式写入的Ş?<br />            OutputFormat format = OutputFormat.createPrettyPrint();<br />            format.setEncoding("GBK");    // 指定XML~码        <br />            XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);<br />            <br />            writer.write(document);<br />            writer.close();<br />?字符串与XML的{?br />1.字W串转化为XML<br />String text = "<members> <member>sitinspring</member> </members>";<br />Document document = DocumentHelper.parseText(text);<br />2.文档或节点的XML转化为字W串.<br />            SAXReader reader = new SAXReader();<br />            Document document = reader.read(new File("input.xml"));            <br />            Element root=document.getRootElement();                <br />            String docXmlText=document.asXML();<br />            String rootXmlText=root.asXML();<br />            Element memberElm=root.element("member");<br />            String memberXmlText=memberElm.asXML();<br />?使用XPath快速找到节?<br />d的XML文档CZ<br /><?xml version="1.0" encoding="UTF-8"?><br /><projectDescription><br /><name>MemberManagement</name><br /><comment></comment><br /><projects><br />    <project>PRJ1</project><br />    <project>PRJ2</project><br />    <project>PRJ3</project><br />    <project>PRJ4</project><br /></projects><br /><buildSpec><br />    <buildCommand><br />      <name>org.eclipse.jdt.core.javabuilder</name><br />      <arguments><br />      </arguments><br />    </buildCommand><br /></buildSpec><br /><natures><br />    <nature>org.eclipse.jdt.core.javanature</nature><br /></natures><br /></projectDescription></p> <p>使用XPath快速找到节点project.<br />public static void main(String[] args){<br />    SAXReader reader = new SAXReader();<br />    <br />    try{<br />      Document doc = reader.read(new File("sample.xml"));<br />      <br />      List projects=doc.selectNodes("/projectDescription/projects/project");<br />      <br />      Iterator it=projects.iterator();<br />      <br />      while(it.hasNext()){<br />        Element elm=(Element)it.next();       <br />        System.out.println(elm.getText());<br />      }<br />      <br />    }<br />    catch(Exception ex){<br />       ex.printStackTrace();<br />    }<br />}</p> <p><br /></p><img src ="http://www.aygfsteel.com/youngturk/aggbug/378810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/youngturk/" target="_blank">youngturk</a> 2012-05-22 10:52 <a href="http://www.aygfsteel.com/youngturk/archive/2012/05/22/378810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ְ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʵ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϋ</a>| <a href="http://" target="_blank">ͨɽ</a>| <a href="http://" target="_blank">ڻ</a>| <a href="http://" target="_blank">żҽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ī񹤿</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ԫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ĺ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">֦</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank">ͼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">־</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">Ӽ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>