DOM 4 J入門

15470 ワード

こんなにたくさんのブログを見て、このDOM 4 Jについてまだよく分からないので、メモを取らざるを得ません.どこか間違っていたら提出してください.一緒に進歩します.DOM 4 Jを使用する場合は、必要なパッケージを先にインポートし、アドレスをダウンロードします.http://download.csdn.net/detail/chaogu94/9617730 最近点数が足りなくて、もしこのブログから学んだことのある友达が賞をあげることができたら、点数のない兄弟が必要なら、伝言を残して私に連絡して、見てからきっとあなたに1部送ります.
Demo 1:xmlファイル:users.xml

<users>
    <user id="1">
        <username>  username>
        <password>123password>
    user>
    <user id="2">
        <username>  username>
        <password>321password>
    user>
users>

JAvaコード:
public class Dom4JTest2 {

    public static void main(String[] args) throws DocumentException {
        //   SAXReader      document  
        SAXReader reader = new SAXReader();
        //   document  
        Document document = reader.read("users.xml");
        //      
        Element root = document.getRootElement();
        // System.out.println(root.getName());//          
        //           user   
        List elements = root.elements("user");
        //         
        for (Element element : elements) {
            // System.err.println(element.getName());
            //           
            System.out.println(element.attributeValue("id"));
            //                   
            System.out.println("username:" + element.elementText("username")
                    + " password:" + element.elementText("password"));
        }
    }
}

Demo2:
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class Dom4JTest2 {

    public static void main(String[] args) {
        XMLWriter writer = null;
        //     DocumentHelper  Document  
        Document document = DocumentHelper.createDocument();
        //      
        Element root = document.addElement("users");
        //          
        Element user1Element = root.addElement("user");
        Element user2Element = root.addElement("user");
        //         
        user1Element.addAttribute("id", "1");
        user2Element.addAttribute("id", "2");
        //             
        user1Element.addElement("username").addText("zhangsan");
        user1Element.addElement("password").addText("123");

        user2Element.addElement("username").addText("lisi");
        user2Element.addElement("password").addText("321");

        //       
        String path = "xml/user.xml";
        try {
            //   XMLWriter    
            writer = new XMLWriter(new FileWriter(path),
                    OutputFormat.createPrettyPrint());
            //      xml   
            writer.write(document);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (writer != null) {
                try {
                    writer.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }

    }
}

XPathの教程の相応するAPIの中で詳しい教程があって、私の提供するツールの中であって、ここで繰り返し紹介しないでください
XPathを使用するDemo xmlファイルについて

<books>
    <book id="1">
        <title>  Atitle>
        <author>  Aauthor>
        <price>89.00price>
    book>
    <book id="2">
        <title>  Btitle>
        <author>  Bauthor>
        <price>69.00price>
    book>
    <book id="3">
        <title>  Ctitle>
        <author>  Cauthor>
        <price>29price>
    book>
books>


Javaファイル
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Dom4JTest2 {

    public static void main(String[] args) throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read("users.xml");
        Element root = document.getRootElement();
        //   xpath   xml    
        //       ,          book
        List elements = root.selectNodes("book");
//      System.out.println(elements.size());//    3

        //          ,  books    book  (       book     )
        elements = root.selectNodes("/books/book");
//      System.out.println(elements.size());//    3

        //      book,      
        elements = root.selectNodes("/book");
//      System.out.println(elements.size() + ":" + elements);

        //                  (      )      ,      
        elements = root.selectNodes("//title");
//      System.out.println(elements.size() + ":" + elements);   

        //           B  
        elements = root.selectNodes("book[author='  B']");
        for (Element element : elements) {
            //System.out.println("title:"+element.elementText("title"));
        }

        //      id    2  
        elements = root.selectNodes("/books/book[@id>2]");
        for (Element element : elements) {
            //System.out.println("title:"+element.elementText("title"));
        }

        //             price  
        elements = root.selectNodes("/books/book[contains(title,'  ')]/price");
        for (Element element : elements) {
            //System.out.println(element.getTextTrim());
        }

        //                50  
        elements = root.selectNodes("/books/book[contains(title,'  ') and price>50]");
        for (Element element : elements) {
            System.out.println(element.elementText("title")+":"+element.elementText("price"));
        }
    }
}