2.2 使用 JAXP 对XML文档进行SAX解析
2024-09-05 03:56:47
使用JAXP 对 XML文档进行 SAX解析:
public class Demo1 { /**
* 使用JAXP对XML文档进行SAX解析
* @throws Exception
* @throws ParserConfigurationException
*/
public static void main(String[] args) throws ParserConfigurationException, Exception { //1.创建解析工厂
SAXParserFactory factory = SAXParserFactory.newInstance(); //2.得到解析器
SAXParser sp = factory.newSAXParser(); //3.得到读取器
XMLReader reader = sp.getXMLReader(); //4.设置内容处理器
ListHandler handler = new ListHandler();
reader.setContentHandler(handler); //5.读取XML文档内容
reader.parse("src/book.xml");
} } //得到XML文档所有内容
class ListHandler implements ContentHandler { @Override
public void startElement(String uri, String localName, String qName,
Attributes atts) throws SAXException {
System.out.println("<" + qName + ">"); //打印标签的属性
for(int i = 0;atts != null && i<atts.getLength();i++) { //防止某些时候属性值为空时,抛异常 所以再加个条件atts != null
String attName = atts.getQName(i);
String attValue = atts.getValue(i);
System.out.println(attName + "=" + attValue);
} } @Override
public void characters(char[] ch, int start, int length)
throws SAXException {
System.out.println(new String(ch,start,length)); } @Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
System.out.println("</" + qName + ">"); } @Override
public void setDocumentLocator(Locator locator) { } @Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub } @Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub } @Override
public void startPrefixMapping(String prefix, String uri)
throws SAXException {
// TODO Auto-generated method stub } @Override
public void endPrefixMapping(String prefix) throws SAXException {
// TODO Auto-generated method stub } @Override
public void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub } @Override
public void processingInstruction(String target, String data)
throws SAXException {
// TODO Auto-generated method stub } @Override
public void skippedEntity(String name) throws SAXException {
// TODO Auto-generated method stub } }
最新文章
- 编写Windows服务疑问1:操作过程
- Qt4.8.5 QtWebKit QWebView 用户栈检查崩溃问题的思考
- ionic懒加载图片
- try...except 错误记录添加logging
- Maven生命周期(插件)
- 几项有用的JQUERY代码
- mybatis 做 insert操作的时候返回插入的那条数据的id
- 关于Spring事务<;tx:annotation-driven/>;的理解(Controller可以使用@Transactional)
- js 对于回车时间的监听,提交表单
- Python2和Python3中的字符串编码问题解决
- mariadb 压缩包gz安装方式
- remove duplicate of the sorted array
- 用Excel导入Oracle数据库plsql
- 使用map()的小陷阱:parseInt
- Laravel collection 报错 join(): Invalid arguments passed
- C语言中 有符号数、无符号数、整数溢出 (转)
- 记:青岛理工ACM交流赛筹备工作总结篇
- java文件读写操作指定编码格式
- mysql_load_data及权限管理
- 关于phonegap-plugin-contentsync插件