`
lanqiaoyeyu
  • 浏览: 24341 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

w3c解析XML

    博客分类:
  • Java
 
阅读更多
XML file
<?xml version="1.0" encoding="GB2312"?>
<book>
	<person>
		<first>wang</first>
		<last>laohu</last>
		<age>25</age>
		<version>中国邮电出版社</version>
	</person>
	<person>
		<first>li</first>
		<last>junjia</last>
		<age>24</age>
		<version>清华大学出版社</version>
	</person>
</book>


test code:
package bill.com;

import java.io.File;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;



public class ReadXML {
	private static Document doc = null;
	/**
	 * @param args
	 */
	public static void readXML(String xmlPath){
		try {
			XPath xpathEngine = XPathFactory.newInstance().newXPath();
			InputSource xmlSource = new InputSource(xmlPath); 
			String xpathExpression1 = "/Root/Header"; 
			String xpathExpression2 = "/Root/content"; 
			String result = xpathEngine.evaluate(xpathExpression1, xmlSource);
			String result2 = xpathEngine.evaluate(xpathExpression2, xmlSource);
			
			System.out.println(result);
			System.out.println(result2);
		} catch (XPathExpressionException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
	public static void readXMLByDom(String xmlPath){
		init(xmlPath);
		Element element = doc.getDocumentElement();    
		System.out.println("Root element: " + element.getTagName());
		
		NodeList nodeList = doc.getElementsByTagName("person");    
		System.out.println("book节点链的长度:" + nodeList.getLength());    
		  
		Node fatherNode = nodeList.item(0);    
		System.out.println("父节点为:" + fatherNode.getNodeName());    
		  
		//get attribute of father node 
		NamedNodeMap attributes = fatherNode.getAttributes(); 
		for (int i = 0; i < attributes.getLength(); i++) {
			Node attribute = attributes.item(i);    
			System.out.println("book的属性名为:" + attribute.getNodeName()    
			+ " 相对应的属性值为:" + attribute.getNodeValue());
		}
		NodeList childNodes = fatherNode.getChildNodes();    
		System.out.println(childNodes.getLength());    
		for (int j = 0; j < childNodes.getLength(); j++) {
			Node childNode = childNodes.item(j);    
			// 如果这个节点属于Element ,再进行取值    
			if (childNode instanceof Element) {    
			// System.out.println("子节点名为:"+childNode.getNodeName()+"相对应的值为"+childNode.getFirstChild().getNodeValue());    
				System.out.println("子节点名为:" + childNode.getNodeName()    
						+ "相对应的值为" + childNode.getFirstChild().getNodeValue());    
			}  
		}
	}
	public static void init(String xmlPath){
		try {
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();    
			DocumentBuilder db = dbf.newDocumentBuilder();
			doc = db.parse(new File(xmlPath));
		} catch (ParserConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SAXException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//readXML("c:/Bill/temp/test.xml");
		readXMLByDom("c:/Bill/temp/person.xml");
	}

}

分享到:
评论

相关推荐

    WCdom解析xml

    W3C解析xml

    w3c的xml的解析器

    这是xml(10年内不会失业的技术),英语不是很差的就能看懂

    使用dom4j解析XML

    dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改...与W3C DOM API相比,使用dom4j所包含的解析器的好处是dom4j拥有本地的XPath支持。DOM解析器不支持使用XPath选择节点。

    Java解析XML工具类--(java源码)

    * 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...

    java dom 解析 xml 实例

    java dom 解析 xml 实例 介绍w3c中的元素的用法,以及在解析xml过程中用到的API进行详细解释

    易语言模块 XMLDOM 解析 构造 获取 更改 添加 删除 遍历元素 格式化XML

    W3C 标准 XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法(接口)。 换句话说:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。 模块简介: 1、XMLDOMDocument类: XML对象文档 -&gt;操作创建或...

    XML解析支持库2.0#0版

    易语言EXMLParser.fne支持库中文名为易语言XML解析支持库,本易语言支持库提供对W3C标准XML文件的读写支持。目前本易语言支持库仅支持W3C标准的XML文件,不支持DTD。支持BASE64编码文本和CDATA文本,编码方面仅支持...

    用Python解析XML的几种常见方法的介绍

    这篇文章主要介绍了用Python解析XML的几种常见方法,包括快速的使用ElementTree模块等方法的实例介绍,... python解析XML常见的有三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合

    XML解析支持库2.0#0版(静态版)

    易语言EXMLParser_static.lib支持库中文名为易语言XML解析支持库,本易语言支持库提供对W3C标准XML文件的读写支持。目前本支持库仅支持W3C标准的XML文件,不支持DTD。支持BASE64编码文本和CDATA文本,编码方面仅支持...

    分享一个xml解析方法

    一个xml的解析方法,供参考。 import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource;

    java解析xml

    // 解析XML文档的输入流,得到一个Document Document doc = dombuilder.parse(is); // 得到XML文档的根节点 Element root = doc.getDocumentElement(); // 得到节点的子节点 NodeList books = root....

    XML.zip_w3c

    XML被设计成易于实现,且可在SGML和HTML之间互相操作(W3C XML工作组对XML的定义)。 它是Internet环境中跨平台的、依赖于内容的技术,是这个时代中处理分布式结构信息的选择工具,用它来简化通过Internet的文档信息...

    w3c-dom.jar 包

    w3c-dom.jar 包 dom解析xml使用 包 免积分下载

    java解析xml及4种常用解析比较

    DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做...

    XML解析教程

    java解析xml四种方式 DOM (Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的标准接口, DOM采用建立树形结构的方式访问XML文档. SAX(Simple API for XML) 不是某个官方标准,但它是 XML 社区事实...

    从初识XML到解析XML

    XML 是 W3C 的推荐标准 XML 允许创作者定义自己的标签和自己的文档结构。 XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。 XML文件的创建 1.直接创建fil

    4种常见的xml解析方法

    DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以 层次结构组织的节点或信息片断的集合。

    简单易用的C++解析xml类

    RapidXml 试图成为最快的 XML DOM 解析工具包,同时保证解析结果的可用性、可移植性以及与 W3C 标准的兼容性。RapidXml 使用 C++ 编写,因此在操作同一数据时,其解析速度接近于 strlen() 函数。 整个解析工具包包含...

    xml解析方式大全

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

Global site tag (gtag.js) - Google Analytics