`

xml的解析方式

    博客分类:
  • xml
 
阅读更多
   解析xml有四种方法:DOM,SAX,DOM4j,JDOM.
     我们主要学了两种:DOM和SAX.
     DOM适于解析比较简单的XML而SAX则适于解析较复杂的XML文件。各有各的好。

     DOM和SAX的不同:
     1. DOM是基于内存的,不管文件有多大,都会将所有的内容预先装载到内存中。从而消耗很大的内存空间。而SAX是基于事件的。当某个事件被触发时,才获取相应的XML的部分数据,从而不管XML文件有多大,都只占用了少量的内存空间。
     2. DOM可以读取XML也可以向XML文件中插入数据,而SAX却只能对XML进行读取,而不能在文件中插入数据。这也是SAX的一个缺点。
     3.SAX的另一个缺点:DOM我们可以指定要访问的元素进行随机访问,而SAX则不行。SAX是从文档开始执行遍历的。并且只能遍历一次。也就是说我们不能随机的访问XML文件,只能从头到尾的将XML文件遍历一次(当然也可以中间截断遍历)。


Dom解析

example1.xml
引用

<?xml version="1.0" ?>
<Root>
<A>
<B>
<Teacher name="Liucy">
C++
</Teacher>
<Teacher name="Huxz">
Java
</Teacher>
</B>
</A>
</Root>



ParseXmlwithDom1.java
import org.w3c.dom.*;
import javax.xml.parsers.*;
public class ParseXmlwithDom1 {
	public static void main(String[] args) throws Exception{
		DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
		DocumentBuilder builder=dbf.newDocumentBuilder();
		Document doc=builder.parse("example1.xml");
		/*
		Element root=doc.getDocumentElement();
		*/
		
		//NodeList nl=root.getChildNodes();
		
		NodeList nl=doc.getElementsByTagName("Teacher");
		
		for(int i=0;i<nl.getLength();i++){
			Node n=nl.item(i);
			/*
			short s=n.getNodeType();
			if (s==Node.ELEMENT_NODE){
			*/
				System.out.print("Element:");
				Element e=(Element)n;
				System.out.print(e.getTagName());
				System.out.print(" name="+e.getAttribute("name"));
				System.out.println("  textContent="+e.getTextContent().trim());
			/*}
			if (s==Node.TEXT_NODE){
		
				System.out.print("Text:");
				Text t=(Text)n;
				String text=t.getTextContent().trim();
				System.out.println(text);
			}
			*/
		}
		
		
	}
}


控制台输出:
Element:Teacher name=Liucy  textContent=C++
Element:Teacher name=Huxz  textContent=Java



SAX解析:
引用
<?xml version="1.0" ?>
<Root>
<Teacher1 name="Liucy">
C++
</Teacher1>
<Teacher2 name="Huxz">
Java
</Teacher2>
</Root>



ParseXmlwithSAX.java
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import static java.lang.System.*;
public class ParseXmlwithSAX {
	public static void main(String[] args) throws Exception {
		SAXParserFactory fact=SAXParserFactory.newInstance();
		SAXParser parser=fact.newSAXParser();
		DefaultHandler dh=new MyHandler();
		parser.parse("example2.xml",dh);
	}
}
class MyHandler extends DefaultHandler{
	public void characters(char[] cs, int start, int length) throws SAXException {
		String str=new String(cs,start,length).trim();
		if (str.length()==0) return;
		out.println("处理文本 "+str);
	}
	public void endDocument() throws SAXException {
		out.println("文档结束");
	}
	public void endElement(String uri, String localName, String qName) throws SAXException {
		out.println("标记结束 "+qName);
	}
	public void startDocument() throws SAXException {
		out.println("文档开始");
	}
	public void startElement(String uri, String localName, String qName, Attributes as) throws SAXException {
		out.println("标记开始 "+qName);
		if (as.getLength()!=0) {
			String value=as.getValue("name");
			out.println("name="+value);
		}

	}
	
}



控制台输出:
文档开始
标记开始 Root
标记开始 Teacher1
name=Liucy
处理文本 C++
标记结束 Teacher1
标记开始 Teacher2
name=Huxz
处理文本 Java
标记结束 Teacher2
标记结束 Root
文档结束
分享到:
评论

相关推荐

    java XML解析方式实现自动生成word文档

    XML解析方式是一种高效且灵活的方法,能够帮助我们实现这一目标。本篇文章将详细探讨如何利用Java和XML解析来自动化创建Word文档。 首先,我们需要了解XML的结构。XML(Extensible Markup Language)是一种标记语言...

    C# XML解析方式

    ### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`是一种高效的流式XML解析器,适用于处理大型XML文档或当只需要读取文档的部分内容时。 - **特点**: - **...

    xml解析方式大全

    xml解析方式包括w3c dom,sax,xpp,stax,vtd方式,其实还有jdom和xmlevent这样才够全面

    C# XML 解析方式

    它提供了一种高效但功能有限的XML解析方式,不支持修改XML文档,适用于大文件或网络流: ```csharp using (XmlReader reader = XmlReader.Create("example.xml")) { while (reader.Read()) { if (reader....

    Android Xml解析方式

    总结,这三种XML解析方式各有优劣。DOM适合小规模、快速访问的数据;PULL和SAX适合大规模、低内存占用的情况,其中PULL更易于使用,而SAX对资源的利用更高效。在实际开发中,应根据项目需求和XML文件大小选择合适的...

    XML解析方式对比(含XPP3解析)

    总结来说,XML解析方式有DOM、SAX和Pull解析,其中XPP3作为Pull解析的一种实现,以其高效和灵活的特性在处理XML时具有优势。通过集成XPath,XPP3进一步提升了查询和处理XML文档的能力。在开发过程中,根据项目需求和...

    android的三种xml解析方式

    Pull解析是Android特有的XML解析方式,它类似于SAX解析,也是事件驱动的,但提供了更简洁的API。Pull解析器非常适合在有限的内存环境中处理XML,例如在Android设备上。以下是一个基本的Pull解析示例: ```java ...

    java常用的4种xml解析方式

    ### Java常用的四种XML解析方式详解 #### 一、DOM(Document Object Model)解析 DOM是一种树状结构的解析方式,由W3C推荐标准。它将XML文档转换为树形结构,每个节点都是一个对象,可以对这些对象进行读取、修改等...

    XML解析方式SAX和DOM比较.

    XML(eXtensible Markup Language)是一种用于存储和传输数据的...在实际开发中,根据项目需求和资源限制选择合适的XML解析方式至关重要。理解SAX和DOM的特性可以帮助我们更好地处理XML数据,提高程序的效率和稳定性。

    android 三种xml解析方式整合

    对于XML的处理,Android提供了三种主要的解析方式:DOM(Document Object Model)、SAX(Simple API for XML)和PULL(Pull Parser)。下面将详细介绍这三种解析方式及其特点。 1. DOM解析: DOM解析器会将整个XML...

    iphone开发之xml解析

    在iOS开发中,有两种主要的XML解析方式:DOM(Document Object Model)和SAX(Simple API for XML)。 1. DOM解析: DOM解析器会将整个XML文档加载到内存中,构建一个树形结构,每个节点代表XML文档的一部分。这种...

    android xml三种解析方式

    本篇将详细探讨Android中的三种XML解析方式:DOM解析、SAX解析和Pull解析。 1. DOM解析(Document Object Model) DOM解析器会将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这种解析方式的优点是能够...

    易语言 xml解析 易语言 xml解析 教程 带源码

    常见的解析方式有DOM(Document Object Model)和SAX(Simple API for XML)两种。DOM解析器会将整个XML文档加载到内存中,形成一个树形结构,适合小规模数据处理;SAX解析器则是事件驱动的,逐行读取XML,适合处理...

    js的XML解析器 可以解析XMl文件和XML字符串

    - **DOM解析**:JavaScript中最常见的XML解析方式是通过DOM解析器,它将XML文档转换为DOM树,每个元素、属性和文本节点都成为DOM树的一部分。例如,`DOMParser`对象可用于解析XML字符串: ```javascript var ...

    android xml解析方式

    总结来说,Android中的XML解析有DOM、SAX和Pull Parser三种主要方法。DOM适合小型文件,提供完整的文档结构;SAX适合大型文件,节省内存但需编写较多处理代码;而Pull Parser则结合了两者优点,既节省内存又提供了...

    XML解析工具类

    XML(eXtensible Markup Language)是一...总之,这个“XML解析工具类”是一个便捷的资源,提供了多种XML解析方式,适用于不同的场景和需求。不论你是初学者还是经验丰富的开发者,都能从中受益,更高效地处理XML数据。

    Android XML解析(DOM、PULL、SAX三种方式)

    Android系统提供了三种主要的XML解析方式:DOM(Document Object Model)、PULL(Pull Parser)和SAX(Simple API for XML)。每种方法都有其独特的特性和应用场景,下面将详细介绍这三种XML解析方式。 1. DOM解析...

    java xml解析工具类 java xml解析工具类

    java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...

    xml四种解析方式

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。...在实际应用中,开发者应根据项目需求,权衡性能、易用性和资源消耗,选择最适合的XML解析方式。

    解析xml解析xml解析xml解析xml解析xml

    二、XML解析方式 1. DOM解析:Document Object Model(DOM)解析器将整个XML文档加载到内存中,形成一棵元素树,便于遍历和修改。这种方式适合小到中型的XML文件,因为内存消耗较大。 2. SAX解析:Simple API for ...

Global site tag (gtag.js) - Google Analytics