• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Bear Bibeault
  • Paul Clapham
  • Jeanne Boyarsky
  • Knute Snortum
Sheriffs:
  • Liutauras Vilda
  • Tim Cooke
  • Junilu Lacar
Saloon Keepers:
  • Ron McLeod
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Joe Ess
  • salvin francis
  • fred rosenberger

Using Xerces 2 Java edition in your application

 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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>>的目录
解析结束:

 
Once upon a time there were three bears. And they were visted by a golden haired tiny ad:
Sauce Labs - World's Largest Continuous Testing Cloud for Websites and Mobile Apps
https://coderanch.com/t/722574/Sauce-Labs-World-Largest-Continuous
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!