Dom4j中XPath相对路径的使用
 
XPath是用来表达XML文档树各种元素的位置的描述。通过XPath直接获取文档元素比较准确,直接,效率也高。
XPath的路径分相对的和绝对的,绝对路径以“/"开始,相对路径以“./”或直接以元素的名开头。
 
xml
xml version = "1.0" encoding = "UTF-8" ?>
< persons >
         < country >china country >
         < city >zhengzhou city >
         < person >
                 < id >101 id >
                 < name >zhangsan name >
                 < contacts >
                         < email >[email protected] email >
                         < tel >0371-85555555 tel >
                         < qq >6683965 qq >
                 contacts >
                 < addresses >
                         < address >
                                 < zipcode >450000 zipcode >
                                 < street >aaa street >
                         address >
                         < address >
                                 < zipcode >450001 zipcode >
                                 < street >bbb street >
                         address >
                 addresses >
         person >
         < person >
                 < id >102 id >
                 < name >lisi name >
                 < contacts >
                         < email >[email protected] email >
                         < tel >0371-68554545 tel >
                         < qq >224488 qq >
                 contacts >
                 < addresses >
                         < address >
                                 < zipcode >450002 zipcode >
                                 < street >xxx street >
                         address >
                         < address >
                                 < zipcode >450003 zipcode >
                                 < street >yyy street >
                         address >
                 addresses >
         person >
persons >
 
import java.io.File;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;

/**
* XML相对路径测试
*
* @author leizhimin 2010-1-6 11:10:54
*/

public class TestDom {

         public static void main(String[] args) {
                File xmlf = new File( "D:\\person.xml");
                Document doc = XmlToolkit.makeDocument(xmlf, "UTF-8");

                Element e_plan = (Element) doc.selectSingleNode( "/persons");
                Element e_id = (Element) e_plan.selectSingleNode( "./country");
                Element e_id1 = (Element) e_plan.selectSingleNode( "country");
                List eplist = e_plan.selectNodes( "/persons/person");
                 for (Element ep : eplist) {
                        String path = ep.getPath();
                        Element id = (Element) ep.selectSingleNode( "id");
                        System.out.println(id.getText());
                }
                System.out.println( "---------------");

        }
}
 
101
102
---------------

Process finished with exit code 0