解析xml几个方法的简单封装

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
/**
 *
 * @author D_xiao
 *
 */
public class AnalysisXmlByDom {
	/**
	 * 功能            :通过dom的方法解析文档,得到子节点内容
	 * 参数           :url:文档路径 ; rootElemnt:xml文件根节点; childElement:子节点
	 * return :子节点内容
	 * */
	public String dom(String url,String rootElement,String clildElement){
		String child = null;
		try{
			 File f=new File(url);
			 DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
			 DocumentBuilder builder=factory.newDocumentBuilder();
			 Document doc = builder.parse(f);
			 NodeList nl = doc.getElementsByTagName(rootElement);
			 for (int i=0;i<nl.getLength();i++){
				 child = doc.getElementsByTagName(clildElement).item(i).getFirstChild().getNodeValue();
			 }
		 }catch(Exception e){
			 e.printStackTrace();
		 }
		return child;
	}
	public static void main(String[] args) {
		AnalysisXmlByJdom dom = new AnalysisXmlByJdom();
		String a = dom.dom("src/first.xml", "value", "no");
		System.out.println(a);
	}
}
import java.io.File;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class AnalysisXmlByDom4j {
	/**
	 * 功能            :通过jdom的方法解析文档,得到子节点内容
	 * 参数           :url:文档路径 ; rootElemnt:xml文件根节点; childElement:子节点
	 * return :子节点内容
	 * */
	public String dom4j(String url,String clildElement){
		String child = null;
		try {
			//使用SAX方式解析xml
			SAXReader saxReader = new SAXReader();
			//读取first.xml资源
			Document doc = saxReader.read(new File(url));
			//取得根节点
			Element root = doc.getRootElement();
			Element foo;
			//遍历根节点的所有孩子节点
			for (Iterator i = root.elementIterator(); i.hasNext();){
				foo = (Element) i.next();
				child = foo.elementText(clildElement);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return child;
	}
	public static void main(String[] args) {
		AnalysisXmlByJdom dom4j = new AnalysisXmlByJdom();
		String a = jdom4j.jdom4j("src/first.xml", "value", "no");
		System.out.println(a);
	}
}
import java.io.File;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class AnalysisXmlByJdom {
	/**
	 * 功能            :通过jdom的方法解析文档,得到子节点内容
	 * 参数           :url:文档路径 ; rootElemnt:xml文件根节点; childElement:子节点
	 * return :子节点内容
	 * */
	public String jdom(String url,String rootElement,String childElement){
		String child = null;
		try {
			//创建一个SAXBudilder对象
			SAXBuilder builder = new SAXBuilder();
			//读取first.xml资源
			Document doc = builder.build(new File(url));
			//获取根元素
			Element foo = doc.getRootElement();
			//获取根元素下面所有的子元素
			List<Element> allChildren = foo.getChildren(rootElement);
			for(int i=0;i<allChildren.size();i++) {
				child = (allChildren.get(i)).getChild(childElement).getText();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return child;
	}

	/**
	 * 测试
	 * @param args
	 */
	public static void main(String[] args) {
		AnalysisXmlByJdom jdom = new AnalysisXmlByJdom();
		String a = jdom.jdom("src/first.xml", "value", "no");
		System.out.println(a);
	}
}

解析xml几个方法的简单封装,布布扣,bubuko.com

时间: 2024-08-05 11:13:20

解析xml几个方法的简单封装的相关文章

解析Xml四种方法

关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath [引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM4j,下文主要介绍这4种解析XML文档技术的使用.优缺点及性能测试. 一.[基础知识——扫盲] sax.dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无法解析xml文档的:jaxp只是api,它进一步封装了sax.dom两种接口,并且提供了DomcumentBuilderFa

Android程序解析XML文件的方法及使用PULL解析XML案例

一.一般解析XML文件的方法有SAX和DOM.PULL (1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM 以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构

解决IE中无法使用jquery.find方法解析xml字符串的方法

getResult:function(data){ data=data.replace(/"/g,"'"); var xml; //解决办法 if( typeof data == "string" ){ xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = false; xml.loadXML(data); } else { xml = data; } var resultOb

SAX方式解析XML文件的方法分析

SAX(Simple API for XML)SAX的工作原理简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束.元素(element)开始与结束.文档(document)结束等地方时通知事件处理方法,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束.SAX解析方式适用于大型文档,因为他的解析是逐行进行不用像DOM中那样为所有节点创建对象,这样效率大大提高,所以虽然它不是W3C标准,但它却得到了广泛认可. 这是一个需要解析的XML文件: <?xml versio

Java解析XML三种常用方法

1.使用DOM方式解析: 1 package com.wzh.dom; 3 import java.util.Iterator; 5 import javax.xml.parsers.DocumentBuilder; 6 import javax.xml.parsers.DocumentBuilderFactory; 8 import org.w3c.dom.Document; 9 import org.w3c.dom.Element; 10 import org.w3c.dom.NamedNo

PHP-四种解析XML文件的方法

XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. 1. XML Expat Parser: XML Parser使用Expat XML解析器.Expat是一种基于事件的解析器,它把XML文档视为一系列事件.当某个事件发生时,它调用一个指定的函数处理它.Expat是无验证的 解析器,忽略任何链接到文档的DTD.但是,如果文档的形式不好,则会以一个错

解析XML文件的方法

1 SAX解析 1 1-1 外部配置 1 1-2 具体的实现 1 1-3 效果图 3 2 DOM解析 (Document object Model)w3c 3 2-1 用到的函数解析 3 Document: 3 Element: 7 2-2 实例: 8 2-2-1 parse1 8 2-2-1 parse2 9 2-2-3 getNodes获取节点 10 2-2-4 测试 10 3 JDOM 解析 导入jdom包 11 4 DOM4J 解析导入的 dom4j 架包 11 4-1parse1 11

[android]解析XML文件的方法有三种:PULL,DOM,SAM

PULL 的工作原理: XML pull提供了开始元素和结束元素.当某个元素开始时,可以调用parser.nextText从XML文档中提取所有字符数据.当解析到一个文档结束时,自动生成EndDocument事件. 常用的XML pull的接口和类: XmlPullParser:该解析器是一个在org.xmlpull.v1中定义的解析功能的接口. XmlSerializer:它是一个接口,定义了XML信息集的序列. XmlPullParserFactory:这个类用于在XMPULL V1 API

kettle(PDI)解析xml、json等格式数据的方法

最近由于工作业务需要,一直在研究pdi工具中解析xml.json等格式数据的方法,解析xml和json都较简单. 解析xml的时候,只需要选择相应的文件(不一定要是xml文件,txt的也行,只要是数据是xml格式就可以),然后选择循环读取路径,设置好标签对名称即可: 一:选择文件,如果xml数据是上一过程输入的,不用选择文件: 二:选择循环解析xml的节点,你所选择的节点应该是所以数据的根节点: 三:设置好对应的节点名称和数据名称: 保存配置后,运行即可. 对应的解析json也类似xml的解析: