Dom4j讀取XML指定節點

想要讀取指定Name的節點時遇到了一定的困難 <Property Name="Title">十八大報告</Property>,最後通過Dom4j與XPATH完美解決。

需要jar如下 http://download.csdn.net/detail/chenweitang123/3095860

XML文件如下

<?xml version="1.0" encoding="UTF-8"?>
<Root>
  <Input>
  	<Property Name="Uri">http://news.sina.com.cn/c/2011-05-23/220922515968.shtml</Property>
  	<Property Name="Title">十八大報告</Property>
	<Property Name="Content">堅定不移沿着中國特色社會主義道路前進爲全面建成小康社會而奮鬥中國共產黨第十八次全國代表大會報告2012年11月8日胡錦濤同志們現在我代表第十七屆中央委員會向大會作報告中國共產黨第十八次全國代表大會是在我國進入全面建成小康社會決定性階段召開的一次十分重要的大會大會的主題是高舉中國特色社會主義偉大旗幟以鄧小平理論三個代表重要思想科學發展觀爲指導解放思想改革開放凝聚力量攻堅克難堅定不移沿着中國特色社會主義道路前進爲全面建成小康社會而奮鬥此時此刻我們有一個共同的感覺經過九十多年艱苦奮鬥</Property>
	<Property Name="Date">2011年05月23日22:09</Property>
  </Input>
  <ProcessList Template="">
    <Resource ID="1" Adapter="DA_hlsegment" OutputXml="true"  IgnoreFailed="true">
    	<Param Name="Input" Value="Content" />
		  <Param Name="Output" Value="HLSegToken" />
		  <Param Name="CustomCalcSign" Value="POS_TAG" />
		  <Param Name="OutputFieldSign" Value="" />
    </Resource>
    <Resource ID="2" Adapter="ClearSegmentProxy" OutputXml="false" IgnoreFailed="true" /> 
  </ProcessList>
</Root>


JAVA 代碼,包含了一個去讀所有非字符的方法

package util;

import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

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

public class Dom4jParser {
	public static void main(String[] args) {
		Dom4jParser dom4 = new Dom4jParser(); 
		try {
			SAXReader sax = new SAXReader();
			// 獲得dom4j的文檔對象
			Document root = sax.read("HLSegment.xml");
			// 得到database節點
			// Element database = (Element) root
			// .selectSingleNode("//employee[@id='2']");
//			Element database = (Element) root
//					.selectSingleNode("//Input/Property[3]");
			Element database = (Element) root
					.selectSingleNode("//Input/Property[@Name='Content']");
			// List list = database.elements(); // 得到database元素下的子元素集合
			String report = database.getText();
			
			System.out.println("before ———— " + report);
			System.out.println("after ————" + dom4.regxChinese(report));
			/*
			 * 循環遍歷集合中的每一個元素 將每一個元素的元素名和值在控制檯中打印出來
			 */
			// for (Object obj : list) {
			// Element element = (Element) obj;
			// // getName()是元素名,getText()是元素值
			// System.out
			// .println(element.getName() + ": " + element.getText());
			// }
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public String regxChinese(String source) {
		String reg_charset = "[^\u4E00-\u9FA50-9A-Za-z]";
		Pattern p = Pattern.compile(reg_charset);
		Matcher m = p.matcher(source);
		return m.replaceAll("");
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章