import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
public class DOMTest {
public static void main(String[] args) {
try {
DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbfactory.newDocumentBuilder();
Document doc = builder.parse(new File("operation.xml"));
Element root = doc.getDocumentElement();
System.out.println("Root Ele" + root.getTagName());
NodeList list = root.getElementsByTagName("operation");
for (int i=0; i < list.getLength() ; i++) {
Element element = (Element)list.item(i);
// operationName
String operationName = element.getAttribute("name");
System.out.println("Operation : " +operationName);
NodeList inputParamList = element.getElementsByTagName("input");
NodeList outputParamList = element.getElementsByTagName("output");
Element inputParamEle = (Element)inputParamList.item(0);
Element outputParamEle = (Element)outputParamList.item(0);
NodeList inparamList= inputParamEle.getElementsByTagName("param");
NodeList outparamList1 = outputParamEle.getElementsByTagName("param");
NodeList outparamList2 = outputParamEle.getElementsByTagName("table");
System.out.println("input Param list: ");
for(int j=0;j<inparamList.getLength();j++){
Element param = (Element) inparamList.item(j);
String paramName = param.getAttribute("name");
String paramType = param.getAttribute("type");
System.out.println("\t"+ paramName+"\t\t\t"+paramType);
}
System.out.println("output Param list: ");
for (int j=0;j<outparamList1.getLength();j++){
Element param = (Element) outparamList1.item(j);
String paramName = param.getAttribute("name");
String paramType = param.getAttribute("type");
System.out.println("\t"+ paramName +"\t\t\t"+paramType);
}
System.out.println("output Table list :");
for (int k=0;k<outparamList2.getLength();k++){
Element tblparam = (Element)outparamList2.item(k);
String tblname = tblparam.getAttribute("name");
System.out.println("----table name : " + tblname);
NodeList nl1 =tblparam.getElementsByTagName("column");
for(int k1 =0;k1<nl1.getLength();k1++){
Element e1 = (Element)(nl1.item(k1));
System.out.println(e1.getAttribute("name"));
}
System.out.println("----End for table : " + tblname);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.Locator;
import org.xml.sax.XMLReader;
import org.xml.sax.InputSource;
import org.xml.sax.ext.LexicalHandler;
import org.xml.sax.helpers.DefaultHandler;
import java.io.IOException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
public class TestSaxWithLexical extends DefaultHandler implements LexicalHandler
{
private StringBuffer buf;
public TestSaxWithLexical()
{
super();
}
public void setDocumentLocator(Locator locator)
{
}
public void startDocument() throws SAXException
{
buf=new StringBuffer();
System.out.println("*******StartDoc*******");
}
public void endDocument() throws SAXException
{
System.out.println("*******endDoc*******");
}
public void processingInstruction( String target, String instruction )
throws SAXException
{
System.err.println("got " + instruction);
}
public void ignorableWhitespace( char[] chars, int start, int length ) throws SAXException
{
}
public void startElement(String namespaceURI,String localName,String qName,Attributes atts)
{
// System.out.println("*******StartEle*******");
if (true||qName.equalsIgnoreCase("operation")){
for(int i=0;i<atts.getLength();i++)
{
System.out.println(" "+atts.getQName(i)+"\t :"+atts.getValue(i));
}
}
}
public void endElement(String namespaceURI,String localName,String fullName )throws SAXException
{
//System.out.println("******endEle********" + fullName);
}
public void characters( char[] chars, int start, int length )throws SAXException
{
buf.append(chars,start,length);
}
public static void main(String args[])
{
try{
SAXParserFactory sf = SAXParserFactory.newInstance();
SAXParser sp = sf.newSAXParser();
TestSaxWithLexical testsax=new TestSaxWithLexical();
XMLReader xmlReader = sp.getXMLReader();
xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler",
testsax);
sp.parse(new InputSource("operation.xml"),testsax);
}catch(IOException e)
{
e.printStackTrace();
}catch(SAXException e)
{
e.printStackTrace();
}catch(Exception e)
{
e.printStackTrace();
}
}
public void comment(char[] arg0, int arg1, int arg2) throws SAXException {
// TODO Auto-generated method stub
String str = new String(arg0,arg1,arg2);
System.err.println(str);
}
public void endCDATA() throws SAXException {
// TODO Auto-generated method stub
System.err.println(buf.toString());
System.err.println("EOF CDADA");
}
public void endDTD() throws SAXException {
// TODO Auto-generated method stub
}
public void endEntity(String arg0) throws SAXException {
// TODO Auto-generated method stub
}
public void startCDATA() throws SAXException {
// TODO Auto-generated method stub
System.err.println("Begin CDaTA");
}
public void startDTD(String arg0, String arg1, String arg2) throws SAXException {
// TODO Auto-generated method stub
}
public void startEntity(String arg0) throws SAXException {
// TODO Auto-generated method stub
}
}
分享到:
相关推荐
基于QT5 qt 处理XML的三种方式 dom sax xmlstream 5个小例子 参考https://blog.csdn.net/p942005405/article/details/79743221
本文将深入探讨DOM、SAX、JDom和dom4j四种流行的Java XML解析器,以及它们在处理XML文档时的特点和用法。 1. DOM(Document Object Model) DOM是W3C推荐的一种解析XML的标准方法。它将XML文档表示为一个树形结构,...
本文将深入探讨XML开发中的四个关键概念:DTD(Document Type Definition)、CSS(Cascading Style Sheets)、XSLT(Extensible Stylesheet Language Transformations)以及DOM和SAX解析器。 1. DTD(Document Type...
本篇文章将探讨四种处理XML的Java库:DOM、JDOM、SAX和DOM4J,分析它们的原理、性能特点以及适用场景。 首先,我们来了解DOM(Document Object Model)。DOM是W3C组织定义的一种API,它将XML文档解析为一个树形结构...
DOM(Document Object Model)和SAX(Simple API for XML)是解析XML文档的两种主要方法。 DOM是一种W3C标准,它将XML文档视为一棵树形结构,其中每个节点代表XML文档的一部分。在DOM解析中,整个XML文档被加载到...
在Java中,有多种方式可以解析XML文档,其中最常用的是DOM(Document Object Model)和SAX(Simple API for XML)。本篇文章将详细介绍DOM和SAX解析XML的方法,并通过提供的`DomDemo.java`和`SaxDemo.java`示例代码...
在Java中,处理XML文件主要有两种解析器:DOM(Document Object Model)和SAX(Simple API for XML)。这两种解析方式各有特点,适用于不同的场景。 1. DOM解析: DOM解析器将整个XML文档加载到内存中,构建一个树...
在处理XML文档时,有两种主要的解析方法:DOM(Document Object Model)和SAX(Simple API for XML)。本工程包“DOM SAX解析XML文档的范例”将帮助我们深入理解这两种解析方式。 **DOM解析:** DOM解析器将整个XML...
Java作为一款强大的编程语言,提供了多种处理XML的API,其中包括DOM(Document Object Model)和SAX(Simple API for XML)。本教程将帮助初学者深入理解这两种解析XML的方法。 1. DOM解析器 DOM解析器将整个XML...
DOM(Document Object Model)解析和SAX(Simple API for XML)解析是两种常见的XML文档解析方式,它们在处理XML数据时有不同的策略和优缺点。 DOM解析是一种基于树型结构的XML解析方法。当一个XML文档被DOM解析器...
在处理XML文档时,有多种解析方式,包括DOM、SAX、JDOM和DOM4J。每种解析方式都有其特性和适用场景,下面将详细探讨这四种解析方法。 1. DOM(Document Object Model) DOM解析器将整个XML文档加载到内存中,形成一...
DOM(Document Object Model)和SAX(Simple API for XML)是两种主要的XML解析方法。在Java编程中,dom4j库提供了对这两种解析方式的支持。 **DOM解析**: DOM解析器将整个XML文档加载到内存中,创建一个树形结构...
常见的 XML 解析器有 DOM、SAX、JDOM 和 DOM4J 等。每种解析器都有其特点和优缺,选择合适的解析器对应用程序的性能和开发效率有很大影响。 1. DOM 解析器 DOM(Document Object Model)是 W3C 官方标准,用于表示...
【dom4j基础入门文档(SAX,DOM,XPATH)】 dom4j是一个流行的Java库,专门用于处理XML文档。相较于W3C DOM API,dom4j的优势在于它内置了本地XPath支持,使得XML文档的查询和操作更为简便。本文将深入介绍dom4j的...
在Qt框架中,处理XML文件是常见的需求,本项目提供了一个使用DOM(Document Object Model)和SAX(Simple API for XML)两种解析方式的示例,帮助开发者理解如何在Qt环境下进行XML文件的读写操作。 首先,DOM是一种...
### SAX与DOM之间的区别 #### 一、概述 在处理XML文档时,开发人员面临着一个基本的选择:使用DOM(文档对象模型)还是SAX(简单的API for XML)。这两种方法各有优势,选择哪一种取决于具体的应用场景和技术需求...
Java XML处理技术是Java开发中不可或缺的一部分,主要包含三种主流的API:JDOM、DOM和SAX。这些库被广泛用于解析、创建和操作XML文档,各有其特点和适用场景。 1. JDOM(Java DOM): JDOM是Java特定的DOM实现,它...
Ø 1、DOM(org.w3c.dom) Ø “文档对象模型”方式,解析完的Xml将生成一个树状结构的对象。 Ø 2、SAX(org.xml.sax) Ø SimpleAPI for XML,以事件的形式通知程序,对Xml进行解析。 Ø 3、XMLPULL(org.xmlpull.v1) ...
为了处理XML文档,有三种主要的解析方式:DOM、SAX和DOM4J。每种方法都有其特点和适用场景,下面将详细介绍这三种解析方式。 1. DOM(Document Object Model) DOM解析器将整个XML文档加载到内存中,构建一个树形...
DOM与SAX入门,适合初学者,理解DOM与SAX,进而web前端开发。