void startElement(String uri,
String localName,
String qName,
Attributes atts)
throws SAXException
void endElement(String uri,
String localName,
String qName)
throws SAXException接收元素结束的通知。
void characters(char[] ch,
int start,
int length)
throws SAXException
reader.setContentHandler(new MyDefaultHandler());
FileReader fileReader =new FileReader(new File("src\\sax\\startelement\\web.xml"));
reader.parse(new InputSource(fileReader));
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns:csdn="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <csdn:display-name></csdn:display-name> </web-app> <!-- uri - 名称空间 URI,如果元素没有任何名称空间 URI,或者没有正在执行名称空间处理,则为空字符串。 xml namespace-xmlns localName - 本地名称(不带前缀),如果没有正在执行名称空间处理,则为空字符串。 qName - 限定的名称(带有前缀),如果限定的名称不可用,则为空字符串。 attributes - 附加到元素的属性。如果没有属性,则它将是空的 Attributes 对象。 -->
package sax.startelement;
import java.io.File;
import java.io.FileReader;
import org.junit.Test;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
public class Demo3 {
@Test
public void test() throws Exception {
// 通过XMLReaderFactory创建XMLReader对象
XMLReader reader = XMLReaderFactory.createXMLReader();
// 设置事件处理器对象
reader.setContentHandler(new MyDefaultHandler());
// 读取要解析的xml文件
FileReader fileReader = new FileReader(new File(
"src\\sax\\startelement\\web.xml"));
// 指定解析的xml文件
reader.parse(new InputSource(fileReader));
}
// 自定义的解析类,通过此类中的startElement了解uri,localName,qName,Attributes的含义
class MyDefaultHandler extends DefaultHandler {
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
System.out
.println("--------------startElement开始执行--------------------------");
System.out.println("uri:::" + uri);
System.out.println("localName:::" + localName);
System.out.println("qName:::" + qName);
for (int i = 0; i < attributes.getLength(); i++) {
String value = attributes.getValue(i);// 获取属性的value值
System.out.println(attributes.getQName(i) + "-----" + value);
}
System.out
.println("------------------startElement执行完毕---------------------------");
}
}
}
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE 四大名著[ <!ELEMENT 四大名著 (西游记,红楼梦)> <!ATTLIST 西游记 id ID #IMPLIED> ]> <四大名著> <西游记 id="x001"> <作者>吴承恩</作者> </西游记> <红楼梦 id="x002"> <作者>曹雪芹</作者> </红楼梦> </四大名著>
package sax;
import java.io.File;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.junit.Test;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SaxTest {
@Test
public void test() throws Exception {
// 1.获取sax解析器的工厂对象
SAXParserFactory factory = SAXParserFactory.newInstance();
// 2.通过工厂对象 SAXParser创建解析器对象
SAXParser saxParser = factory.newSAXParser();
// 3.通过解析saxParser的parse()方法设定解析的文件和自己定义的事件处理器对象
saxParser.parse(new File("src//sax//sida.xml"), new MyDefaultHandler());
}
// 自己定义的事件处理器
class MyDefaultHandler extends DefaultHandler {
// 解析标签开始及结束的的标识符
boolean isOk = false;
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
// 当解析作者元素开始的时候,设置isOK为true
if ("作者".equals(qName)) {
isOk = true;
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
super.characters(ch, start, length);
// 当解析的标识符为true时,打印元素的内容
if (isOk) {
System.out.println(new String(ch, start, length));
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
super.endElement(uri, localName, qName);
// 当解析作者元素的结束的时候,设置isOK为false
if ("作者".equals(qName)) {
isOk = false;
}
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有