sax xml java_java如何用sax读xml文档

展开全部

zhangsan

man

lisi

women

命名为example.xml

在本例中我们将读取元素的属性id=1和id=2,代码如下:32313133353236313431303231363533e58685e5aeb931333264646434

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;

import org.xml.sax.helpers.DefaultHandler;

public class SAXParserTest extends DefaultHandler{

public SAXParserTest() {

super();

}

public void startElement(String uri,String localName,String qName,Attributes attr){

if(attr.getLength()>0){

for(int i = 0;i

System.out.println(attr.getQName(i)+" = "+attr.getValue(i));

}

}

}

public static void main(String[] args){

try{

//实例化用于分析的工厂

SAXParserFactory factory = SAXParserFactory.newInstance();

//实例化分析类

SAXParser parser = factory.newSAXParser();

SAXParserTest handler = new SAXParserTest();

parser.parse("example.xml",handler);

}catch(Exception e){

System.out.println(e.toString());

}

}

}

二、获取元素块名字属性值

search.response.default.numrows

10

The default number of rows to return if none is specified.

searcher.response.maxage

86400

The maxage of a response in seconds. Used in caching headers.

命名为nutch-default.xml

在本例中我们将读取和所表示的值,即=,代码如下:

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;

import org.xml.sax.helpers.DefaultHandler;

import org.xml.sax.SAXException;

import java.util.Properties;

public class SAXParserTest2 extends DefaultHandler{

private Properties props; //用于存放名字属性对(key-value)

private String currentName; //当前扫描到的键值

private StringBuffer currentValue = new StringBuffer(); //当前名字对应的值

private String Name,Value;//键值对

public SAXParserTest2(){

super();

this.props=new Properties();

}

public void startElement(String uri,String localName,String qName,Attributes attr){

currentValue.delete(0,currentValue.length());

this.currentName=qName;

}

//碰到节点开始和结束之间的字符***

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

currentValue.append(ch,start,length);

}

//碰到节点结束

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

String name=currentName,value=currentValue.toString().trim();

if(name!=""&&value!="")

System.out.println(name+"="+value);

if(name=="name")

Name=value;

if(name=="value")

Value=value;

if(qName=="property")

props.put(Name,Value);

this.currentName="";

currentValue.delete(0,currentValue.length());

}

public String getElementValue(String elementName){

//elementValue:对应于elementName的节点的属性值

String elementValue=null;

elementValue=props.getProperty(elementName);

return elementValue;

}

public static void main(String[] args) {

try{

SAXParserFactory factory = SAXParserFactory.newInstance();

SAXParser parser = factory.newSAXParser();

SAXParserTest2 handler = new SAXParserTest2();

parser.parse("nutch-default.xml",handler); System.out.println(handler.getElementValue("searcher.response.maxage "));

}catch(Exception e){

System.out.println(e.toString());

}

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值