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");
}
}
分享到:
相关推荐
W3C解析xml
这是xml(10年内不会失业的技术),英语不是很差的就能看懂
dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改...与W3C DOM API相比,使用dom4j所包含的解析器的好处是dom4j拥有本地的XPath支持。DOM解析器不支持使用XPath选择节点。
* 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...
java dom 解析 xml 实例 介绍w3c中的元素的用法,以及在解析xml过程中用到的API进行详细解释
W3C 标准 XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法(接口)。 换句话说:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。 模块简介: 1、XMLDOMDocument类: XML对象文档 ->操作创建或...
易语言EXMLParser.fne支持库中文名为易语言XML解析支持库,本易语言支持库提供对W3C标准XML文件的读写支持。目前本易语言支持库仅支持W3C标准的XML文件,不支持DTD。支持BASE64编码文本和CDATA文本,编码方面仅支持...
这篇文章主要介绍了用Python解析XML的几种常见方法,包括快速的使用ElementTree模块等方法的实例介绍,... python解析XML常见的有三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合
易语言EXMLParser_static.lib支持库中文名为易语言XML解析支持库,本易语言支持库提供对W3C标准XML文件的读写支持。目前本支持库仅支持W3C标准的XML文件,不支持DTD。支持BASE64编码文本和CDATA文本,编码方面仅支持...
一个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;
// 解析XML文档的输入流,得到一个Document Document doc = dombuilder.parse(is); // 得到XML文档的根节点 Element root = doc.getDocumentElement(); // 得到节点的子节点 NodeList books = root....
XML被设计成易于实现,且可在SGML和HTML之间互相操作(W3C XML工作组对XML的定义)。 它是Internet环境中跨平台的、依赖于内容的技术,是这个时代中处理分布式结构信息的选择工具,用它来简化通过Internet的文档信息...
w3c-dom.jar 包 dom解析xml使用 包 免积分下载
DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做...
java解析xml四种方式 DOM (Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的标准接口, DOM采用建立树形结构的方式访问XML文档. SAX(Simple API for XML) 不是某个官方标准,但它是 XML 社区事实...
XML 是 W3C 的推荐标准 XML 允许创作者定义自己的标签和自己的文档结构。 XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。 XML文件的创建 1.直接创建fil
DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以 层次结构组织的节点或信息片断的集合。
RapidXml 试图成为最快的 XML DOM 解析工具包,同时保证解析结果的可用性、可移植性以及与 W3C 标准的兼容性。RapidXml 使用 C++ 编写,因此在操作同一数据时,其解析速度接近于 strlen() 函数。 整个解析工具包包含...
xml解析方式包括w3c dom,sax,xpp,stax,vtd方式,其实还有jdom和xmlevent这样才够全面