`

Using Xerces 2 Java edition in your application

 
阅读更多

I share my expercies  in running 

 

Step1: download  Xerces-J-bin.2.11.0.zip from www.apache.org 

 

Step2: You extract ZIP files .

 

 

 

Step3: run samples

 

 

run -> cmd 

 

go to directory of   Xerces-J-bin

 

command line:

(1)java -classpath xercesImpl.jar;xml-apis.jar;xercesSamples.jar  sax.Counter -p org.apache.xerces.parsers.SAXParser  data/personal.xml

data/personal.xml: 31 ms (37 elems, 18 attrs, 140 spaces, 128 chars)

 

(2)java -classpath xercesImpl.jar;xml-apis.jar;xercesSamples.jar  sax.Writer  data/personal.xml

 

(3)java -classpath xercesImpl.jar;xml-apis.jar;xercesSamples.jar  sax.DocumentTracer   data/personal.xml

 

 

 

Step4: run your own java project . like this :

│  .classpath

│  .project

│  Info.xml

│  personal-schema.xml

│  personal.dtd

│  personal.xml

│  personal.xsd

├─.settings

│      org.eclipse.jdt.core.prefs

├─bin

│  ├─com

│  │  └─kylin

│  │      └─form

│  │              MainWindow.class

│  │

│  └─sax

│      └─helpers

│              AttributesImpl$ListNode.class

│              AttributesImpl.class

├─lib

│      xercesImpl.jar

│      xml-apis.jar

└─src

    ├─com

    │  └─kylin

    │      └─form

    │              MainWindow.java

    │

    └─sax

        └─helpers

                AttributesImpl.java

 

MainWindow.java

 

 

package com.kylin.form;

 

import java.io.OutputStreamWriter;

 

import org.xml.sax.Attributes;

import org.xml.sax.InputSource;

import org.xml.sax.Locator;

import org.xml.sax.SAXException;

import org.xml.sax.XMLReader;

import org.xml.sax.helpers.DefaultHandler;

import org.xml.sax.helpers.XMLReaderFactory;

 

public class MainWindow extends DefaultHandler{

 

    /**

    * @param args

    * @throws SAXException 

    * @throws Exception 

    */

    private Locator locator;

    private int index1=0;

    private int index2=0;

 

 

 

    public void characters(char[] ch, int start, int length) throws SAXException {

        // TODO 自动生成方法存根

        //System.out.print( "SAX Event: CHARACTERS[ " ); 

 

        System.out.print("本书<<");

        try { 

        OutputStreamWriter outw = new OutputStreamWriter(System.out); 

        outw.write( ch, start,length ); 

        outw.flush(); 

        } catch (Exception e) { 

        e.printStackTrace(); 

        } 

 

        System.out.println(">>的目录");

        //System.out.println( " ]" ); 

    }

 

    public void endDocument() throws SAXException {

        // TODO 自动生成方法存根

        System.out.println( "解析结束:" ); 

    }

 

    public void endElement(String uri, String localName, String qName) throws SAXException {

        // TODO 自动生成方法存根

        //System.out.println( "SAX Event: END ELEMENT[ " + localName + " ]" ); 

        //this.index2=0;

        if(qName.equalsIgnoreCase("chapter"))

            this.index2=0;

    }

    public void setDocumentLocator(Locator locator) {

        // TODO 自动生成方法存根

        this.locator=locator;

    }

    public void startDocument() throws SAXException {

        // TODO 自动生成方法存根

        System.out.println( "解析开始: " ); 

    }

    public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {

        // TODO 自动生成方法存根

 

        //System.out.println( "SAX Event: START ELEMENT[ " + localName + " ]" );

        if(qName.equalsIgnoreCase("chapter")){

            index1++;

        for ( int i = 0; i < atts.getLength(); i++ ){ 

            //System.out.println(atts.getLength());

            String attName=atts.getQName(i);

            if(attName.equalsIgnoreCase("title")){

                System.out.println("第"+index1+"章:"+atts.getValue(i));

            }

            }

    }

 

        if(qName.equalsIgnoreCase("topic")){

            index2++;

        for ( int i = 0; i < atts.getLength(); i++ ){ 

            String attName=atts.getQName(i);

            if(attName.equalsIgnoreCase("name")){

                System.out.println("     第"+index2+"部分:"+atts.getValue(i));

            }

            }

        }

    }

    public static void main(String[] args) throws Exception {

        // TODO 自动生成方法存根

 

        String vendorParserClass= "org.apache.xerces.parsers.SAXParser";

//        String xmlURI="http://localhost:8080/TestXml/contents.xml";

        String xmlURI="Info.xml";

        XMLReader reader = 

                XMLReaderFactory.createXMLReader(vendorParserClass);

        reader.setContentHandler(new MainWindow());

        InputSource inputSource=new InputSource(xmlURI);

         reader.parse(inputSource);   

    }

}

 

result:

 

解析开始: 

本书<<Boss>>的目录

本书<<Big>>的目录

本书<<chief@foo.com>>的目录

本书<<Worker>>的目录

本书<<One>>的目录

本书<<one@foo.com>>的目录

本书<<Worker>>的目录

本书<<Two>>的目录

本书<<two@foo.com>>的目录

本书<<Worker>>的目录

本书<<Three>>的目录

本书<<three@foo.com>>的目录

本书<<Worker>>的目录

本书<<Four>>的目录

本书<<four@foo.com>>的目录

本书<<Worker>>的目录

本书<<Five>>的目录

本书<<five@foo.com>>的目录

解析结束:

 

分享到:
评论

相关推荐

    Xerces-Java

    **Xerces-Java**是Apache软件基金会开发的一个开源XML解析器,主要针对Java平台。它是基于Java语言实现的,提供了全面的XML处理功能,包括DOM(文档对象模型)、SAX(简单API for XML)和XPath(XML路径语言)等接口...

    xerces-2_11_0

    **Xerces-2_11_0:Java XML解析器详解** Xerces-2_11_0是一款强大的XML解析器,专为Java平台设计。它由Apache软件基金会开发并维护,是Apache Xerces项目的一部分。Xerces在XML处理领域具有广泛的应用,因其高效、...

    org.apache.xerces-2.9.0.jar/xerces.jar

    《Apache Xerces-Java解析库详解》 在Java编程中,XML(eXtensible Markup Language)作为一种数据交换和存储格式,广泛应用于各种场景。处理XML时,我们需要依赖解析器来读取、解析和验证XML文档。Apache Xerces是...

    xerces-2_9_0 帮助文档

    This will keep your application shielded from changes in the underlying implementation of those standard APIs and also gives you more flexibility to change the implementation of the standard pieces ...

    Java解析xml的包--xerces.jar 用于开发xml相关的内空的包..zip

    Xerces.jar包含了Apache Xerces2 Java XML解析器,它是一个开源项目,提供了对XML 1.0和1.1规范的全面支持,以及XPath 1.0和XSLT 1.0处理能力。 Xerces解析器提供了多种解析XML文档的方式,包括DOM(Document ...

    MacOS:Xerces

    Xerces-C++ makes it easy to give your application the ability to read and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents using the ...

    基于Java的实例源码-XML解析器 Xerces.zip

    Xerces-Java是Xerces解析器的Java实现,提供了多种XML解析技术,包括DOM(Document Object Model)、SAX(Simple API for XML)和JAXP(Java API for XML Processing)。这些解析方式各有特点: 1. DOM:这是一种将...

    基于java的XML解析器 Xerces.zip

    在实际应用中,Xerces可以与许多其他Java技术结合使用,如JAXB(Java Architecture for XML Binding)用于对象和XML之间的映射,或者JAXP(Java API for XML Processing)用于更通用的XML处理。此外,Xerces还可以与...

    xerces-2.9.0.jar

    标题 "xerces-2.9.0.jar" 指的是 Xerces-Java 解析器的一个特定版本,这是 Apache 软件基金会提供的一个开源 XML 解析库。Xerces 实现了 W3C 的 XML Schema 1.0 和 1.1 规范,以及 XML 1.0 和 1.1 的解析标准,同时...

    AIX XERCES及配置方法

    2. **下载XERCES**: 你需要从Apache官方网站或者镜像站点下载XERCES的源码包,这里是针对AIX的版本:`xerces-c_2_8_0-powerpc_64-aix-xlc_7_0`。解压该文件,得到源代码。 ### 二、编译安装XERCES 1. **设置环境...

    xerces-c-3.0.0.zip

    Xerces-C++ makes it easy to give your application the ability to read and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents using the ...

    apache-xml-xerces.jar.zip

    2. **DOM(Document Object Model)**:Xerces-J支持DOM API,将XML文档解析为一个可操作的树形结构,允许开发者通过节点遍历、修改和创建XML文档。 3. **SAX(Simple API for XML)**:对于处理大型XML文档,Xerces...

    Xerces-J-tools.2.9.0

    Xerces-J是一个实现了XML 1.0、XML 1.1、DOM Level 3 Core和Load/Save以及SAX2接口的Java XML解析器。这个版本(2.9.0)提供了最新的特性和改进,以帮助开发者高效地处理XML文档。 在XML解析领域,Xerces-J具有以下...

    xerces-c-3.2.3.zip

    2. **DOM(Document Object Model)支持**:Xerces-C++实现了W3C的DOM Level 1 Core和Level 2 Core规范,允许开发者以树形结构访问和修改XML文档。 3. **SAX(Simple API for XML)支持**:对于内存限制较大的场景,...

    java源码:XML解析器 Xerces.rar

    Java源码:XML解析器Xerces是一款经典的开源XML解析库,它为Java开发者提供了处理XML文档的强大工具。Xerces是由Apache软件基金会开发并维护的,是Java平台上的一个重要组件,广泛应用于各种XML相关的项目中。在这个...

    xerces-c++-3.1.3

    XML4C 和 XML4J 是两个并列的项目,而 XML4J 是 Xerces-J——Java 实现——的前身。IBM 将这两个项目的源代码让与 Apache 软件基金会(Apache Software Foundation),他们将其分别改名为 Xerces-C++ 和 Xerces-J。注...

    xerces-2.6.2.jar 项目中直接导入即可哦!

    **Xerces-2.6.2.jar** 是一个用于处理XML解析的Java库,它在Java项目中扮演着至关重要的角色。Xerces是Apache软件基金会开发的一个开源项目,其主要目标是提供一个高性能、全功能且符合XML标准的API。这个版本,即...

    Xerces C、C++、Java等XML解析

    2. **高性能**:通过优化的内存管理和解析算法,Xerces C++能够在处理大量XML数据时保持高效。 3. **跨平台**:支持多种操作系统,包括Windows、Linux、Unix等,使得代码可以在不同环境下轻松迁移。 4. **丰富的API*...

Global site tag (gtag.js) - Google Analytics