XML文件代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<p1>
<name>zhangsan</name>
<age>23</age>
</p1>
<p2>
<name>lisi</name>
<age>20</age>
</p2>
</person>
SAX操作代码:
package cn.itcast.sax;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class Textsax {
/**
* @param args
* @throws Exception
* @throws SAXException
*/
public static void main(String[] args) throws SAXException, Exception {
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
SAXParser saxParser = parserFactory.newSAXParser();
saxParser.parse("src/p.xml", new myDefault1());
}
}
class myDefault1 extends DefaultHandler{
boolean flag = false;
int index=1;
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
//System.out.print("<"+qName+">");
if ("name".equals(qName))
{
flag=true;
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
//System.out.print(new String(ch,start,length));
if (flag==true&&index == 1)
{
System.out.println(new String(ch,start,length));
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
//System.out.print("</"+qName+">");
if("name".equals(qName))
{
flag = false;
index++;
}
}
}