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("");
	}
}


猜你喜欢

转载自blog.csdn.net/frone/article/details/17024941