jaxp下用DOM进行xml文档解析
jaxp是sun公司的解析xml文档的api,他支持用dom和sax两种方法解析一个xml文档.
dom方法是解析引擎将整个xml文档装载到内存中作为一个document对象,dom方法得到一个对象就知道所有的节点
增删改查很方便,缺点是要装载整个xml文档,如果xml文档很大,效率就比较低
sax方法是采用事件作为驱动的,遇到一个标签是一个事件,读到标签里面的内容是个事件,读到标签的结束是个事件.
有点是速度快效率高,缺点是对元素的增删不方面.
<?xml version="1.0" encoding="UTF-8"?><书架>
<书 name="bbb">
<书名>走向北大清华</书名>
<售价>39</售价></书>
<书>
<书名>走向哈佛剑桥</书名>
<作者>BBB</作者>
<售价>56</售价>
</书>
</书架>
采用Dom对xml文件进行解析的例子;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Attr;
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;
public class XmlParserDemo {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// 新建一个DocumentBuilderFactory 解析器工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 通过解析器工厂产生一个解析器对象
DocumentBuilder builder = factory.newDocumentBuilder();
// 解析器对象有一个parse的方法可以读进来一个xml文件
// 读到的xml文件是以document对象的方式保存在内存中的
Document document = builder.parse("src/book.xml");
// listAllNode(document);
//listAllNode1(document);
//readElement(document);
相关文档:
Eclipse IBM开发出的工具
step over 跳到当前程序的下一行(跳过)
step into 跳进去 (跳入)
step return 跳出来 (跳出)
XML
<a classname="cn.itcast.Person"></a>
<?xml version="1.0"?> 空格必须为英文
字符编码
<?xml version="1.0" encoding="UTF-8"?>
CDATA -->Character data &nb ......
XML 和 JSON 是当今常用的两种数据描述与传输的格式,特别是涉及到 JS 时使用 JSON 颇为频繁。自然,在 Java 的世界里少不了完成 JavaBean 与这两种格式相互转换的组件,那就是 XStream 和 JSON-lib。这里我简单记下 XStream 的用法。
其实相类似的工具早已有之。如果用过 DWR 的同志,一定有印像,DWR 进行远 ......
今天继续讲XML,争取在下午5点前占领XML高地。一共三个主要内容:SAX解析技术,DOM4J和SCHEMA。
首先是SAX解析技术:SAX采用事件处理的方式解析XML文件。利用 SAX 解析 XML 文档,涉及两个部分:解析器和事件处理器。
解析器负责读取 XML 文档,并向事件处理器发送事件
事件处理器负责对事件做出相应,对传递的 XML 数据 ......
在XML数据中,一些特殊字符必须用转义符号来代替,而回车换行字符就是属于特殊符号。
空格 ( )
Tab (	)
回车 (
)
换行 (
)
下面是一个报表XML数据,里面包括有回车换行字符:
<report>
<NewDataSet>
<Table>
<CustomerID>BLONP</CustomerID& ......