Dom4j入门指南(2)

Dom4j入门指南(2

 

XPath

 

XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。因此,对 XPath 的理解是很多高级 XML 应用的基础。 下面让我们来看看dom4j对Xpath标准是怎样实现的。在dom4j中,xpath表达式可以进行描述整个Document或是任何的Node(节点),其中包括Attribute(属性)、Element。而这个功能强大而复杂的xpath标准,在dom4j中你只需要一行代码就搞定。看到这里你是不是开始心痒痒了,呵呵,不急,下面咋们来练练,看招 为了能够让大家对xpath有个清楚的认识,我从网上找了个比较复杂的xml来做示例。下面是xml原文

<?xml version="1.0" encoding="ISO-8859-1" ?>

<wml>
<template>
		<do type="options" label="Back">
				<prev/>
		</do>
</template>
<card id="JY">
<onevent type="onenterbackward">
		<prev/>
</onevent>
<do type="accept">
		<go href="#display_fav"/>
</do>
<p>Pick your fav Book:
<select name="fav" title="Stooges">
		<option value="Xiao">Xiao ao jiang hu</option>
		<option value="She">She diao ying xiong</option>
		<option value="Lu">Lu ding ji</option>
		<option value="Shen">Shen diao xia lv</option>
</select>
</p>
</card>
</wml>

 

我把它放到了D盘下,命名为example.xml。以下是代码: 

package com.mgoann.dom4j;

import java.io.File;
import java.util.Iterator;
import java.util.List;

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

public class Mydom4j {
	
	public static void main(String[] args) {
		try {
			Mydom4j dom = new Mydom4j();
			Document doc = dom.parse(new File("d:/example.xml"));
			
			dom.barXpath(doc);
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}
	
    public Document parse(File file) throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read(file);
        return document;
    }
    
        public void barXpath(Document document) {
        List selectNodes = document.selectNodes( "/wml/card/p/select/option" );
        for(Iterator it = selectNodes.iterator(); it.hasNext();) {
        	print((Element)it.next());
        }
        Node node = document.selectSingleNode( "/wml/card/p/select/option" );
        print(node);
        String value = node.valueOf( "@value" );
        print(value);
    }
    
    public void print(Node node) {
    	System.out.println("================================");
    	System.out.println(node.asXML());
    }
    
    public void print(String str) {
    	System.out.println("================================");
    	System.out.println(str);
    }


}

 

以上程序输出结果: 

================================
<option value="Xiao">Xiao ao jiang hu</option>
================================
<option value="She">She diao ying xiong</option>
================================
<option value="Lu">Lu ding ji</option>
================================
<option value="Shen">Shen diao xia lv</option>
================================
<option value="Xiao">Xiao ao jiang hu</option>
Xiao

 

 到现在大家应该对dom4j的xpath实现有个简单的认识了吧。

你可能感兴趣的:(xml,D语言,Go)