* SAX解析XML
*
* */
public void test1() throws Exception
{
//创建解析器工厂
SAXParserFactory factory=SAXParserFactory.newInstance();
//创建解析器
SAXParser parser= factory.newSAXParser();
//获取读取器
XMLReader reader=parser.getXMLReader();
//设置读取器容器
reader.setContentHandler(new MyContentHandle());
//读取xml
reader.parse("book.xml");
}
class MyContentHandle extends DefaultHandler
{
private String elementName;
private int count=0;
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if(elementName.equals("书名") && count==1)
{
String bookName = new String(ch,start,length);
System.out.println(bookName);
}
}
@Override
public void endElement(String uri, String localName, String name)
throws SAXException {
}
@Override
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
if(name.equals("书名"))
{
count++;
}
elementName=name;
}
}
{
//创建解析器工厂
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//创建解析器
DocumentBuilder builder=factory.newDocumentBuilder();
//读取XML文件
Document document=builder.parse("book.xml");
NodeList nodeList=document.getElementsByTagName("书名");
Element element=(Element)nodeList.item(0);
String content=element.getTextContent();
System.out.println(content);
}