`
penghao122
  • 浏览: 362603 次
  • 性别: Icon_minigender_1
  • 来自: 广东珠海
社区版块
存档分类
最新评论

SAXDemo

    博客分类:
  • xml
阅读更多
package javawebservice;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.apache.xerces.parsers.*;
public class SAXDemo extends DefaultHandler
{
public static void main(String[] args)
{
try
{
//生成SAXParser
SAXParser parser=(SAXParser)Class.
forName("org.apache.xerces.parsers.SAXParser").
newInstance();
SAXDemo handler=new SAXDemo();
//生成Handler实例
FilterHandler filter=new FilterHandler();
parser.setContentHandler(handler);
System.out.println("\nNow the parser is working...\n");
//解析文件
parser.parse("TestXerces.xml");
System.out.println("\nNow the filter is working ...\n");
//为过滤器设置解析器
filter.setParent(parser);
//为过滤器设置处理器
filter.setContentHandler(handler);
//解析文件
filter.parse("TestXerces.xml");
}
catch(Exception e)
{
System.out.println(e.toString());
}

}
public void startElement
(String uri,String localName,String qName,Attributes attr)
{
System.out.println("start of a Element --> uri: "+
uri+" localName: "+localName+" qName: "+qName);
//打印该元素节点所有属性
if(attr.getLength()>0)
{
for(int i=0;i<attr.getLength();i++)
{
System.out.println("\t...with attribute --> "+
attr.getQName(i)+"="+attr.getValue(i));
}
}
}
public void endElement
(String uri,String localName,String qName)
{
System.out.println("end of a Element --> uri: "+uri+
" localName: "+localName+" qName: "+qName);
}
static class FilterHandler extends XMLFilterImpl
{
int index=0;
public void startElement
(String uri,String localName,String qName,Attributes attr)
throws SAXException
{
AttributesImpl attrImpl=new AttributesImpl(attr);
for (int i=0;i<attrImpl.getLength();i++)
{
//检查是否有ID属性
if(attrImpl.getQName(i).toUpperCase().equals("ID"))
{
attrImpl.removeAttribute(i);
break;
}
}
//新建ID属性
attrImpl.addAttribute
("","id","id","ID",String.valueOf(index++));
super.startElement(uri,localName,qName,attrImpl);
}
public void endElement
(String uri,String localName,String qName)
throws SAXException
{
super.endElement(uri,localName,qName);
}
public void characters(char[] ch,int iStart,int iLength)
throws SAXException
{
super.characters(ch,iStart,iLength);
}
}
}
分享到:
评论

相关推荐

    XML解析实例代码SAXDemo.rar

    本实例代码“SAXDemo”是基于SAX(Simple API for XML)解析器的Java实现,它是一种事件驱动的解析方式,适用于处理大型XML文件。 SAX解析器的工作原理是,当解析器读取XML文件时,会触发一系列的事件,如开始文档...

    saxDemo.rar_Eclipse_sax_xml

    标题中的“saxDemo.rar_Eclipse_sax_xml”暗示了这是一个关于使用Eclipse IDE和SAX解析器处理XML文件的示例项目。SAX(Simple API for XML)是一种基于事件驱动的XML解析方法,它不将整个XML文档加载到内存中,而是...

    dom和sax对xml的解析

    本篇文章将详细介绍DOM和SAX解析XML的方法,并通过提供的`DomDemo.java`和`SaxDemo.java`示例代码进行阐述。 1. DOM解析: DOM是一种将整个XML文档加载到内存中,构建一个树形结构的解析方式。这种方式允许开发者...

    [原]SAX使用示例

    在提供的文件中,`SAXDemo.java`很可能是实现这些步骤的一个示例程序。它可能包含了如何创建解析器,设置事件处理器,以及如何处理XML内容的代码。例如,它可能包含以下关键部分: ```java // 创建SAX解析器工厂 ...

    数据sax解析

    SaxDemo handler = new SaxDemo(); reader.setContentHandler(handler); reader.parse(new InputSource("path_to_xml_file")); } } ``` 在这个例子中,我们创建了一个名为`SaxDemo`的类,继承自`DefaultHandler...

    sax解析xml文件

    这个简单的示例中,`SaxDemo`类继承了`DefaultHandler`,并重写了几个关键方法。在`main()`方法中,我们创建了`SAXParserFactory`和`SAXParser`,然后使用`parse()`方法解析名为`testSaxXML.xml`的XML文件。 总结...

    关于读取xml文件

    public class SAXDemo extends DefaultHandler { @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if ("tag".equals(qName)) {...

    java sax 解析xml

    public class SAXDemo extends DefaultHandler { @Override public void startElement(String uri, String localName, String qName, Attributes attributes) { // 处理开始标签 } @Override public void ...

    java Sax解析Xml

    public class SaxDemo { public static void main(String[] args) throws Exception { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); ...

    关于解析xml的一些demo

    public class SaxDemo { public static void main(String[] args) { try { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); DefaultHandler ...

    Java SAX解析Xml文档Demo

    public class SaxDemo { public static void main(String[] args) { try { // 创建SAX解析器工厂 SAXParserFactory factory = SAXParserFactory.newInstance(); // 配置解析器,如果需要解析命名空间,可以...

    Android 学习Sax解析例子

    下面我们将通过一个名为"SaxDemo"的实例来展示如何在Android项目中实现SAX解析。 1. **创建解析器**: 首先,我们需要创建一个继承自`DefaultHandler`的类,这个类将会包含所有处理XML事件的方法。例如: ```java ...

    Java解析XML的四种方法.pdf

    public class SaxDemo extends DefaultHandler { @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if ("employee".equals(qName...

    sax_xml_demo

    public class SaxDemo { public static void main(String[] args) throws Exception { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); ...

    Java_XML生成与解析的四种方法

    public class SaxDemo implements ContentHandler { @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { System.out.println(...

    Android中对xml文件解析的3种方式总结

    public class SaxDemo { public static void main(String[] args) throws IOException, SAXException { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory....

    Android_SAXForXML

    在Android开发中,处理XML数据是一项常见的任务,无论是从网络获取数据、读取本地资源还是进行数据交换。SAX(Simple API for XML)是一种事件驱动的XML解析器,它以低内存占用和高效的处理速度而著称,尤其适用于...

Global site tag (gtag.js) - Google Analytics