根据xml的标签解析文件的Demo
2017-11-13 16:25
239 查看
package xmlExtractor; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; import java.util.ArrayList; import java.util.List; public class SAXHandler extends DefaultHandler { int bookIndex = 0; private List<Book> bookList = new ArrayList<Book>(); private Book book = null; private String value = null; //用来标志解析开始 @Override public void startDocument() throws SAXException { System.out.println("解析开始"); } //用来标志解析结束 @Override public void endDocument() throws SAXException { System.out.println("解析结束"); } //用来遍历元素 //开始标签 @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if (qName.equals("book")) { bookIndex++; book = new Book(); System.out.println("============================第" + bookIndex + "本书开始了========================="); //已知book下属性元素的名称 //System.out.println(attributes.getValue("id")); for (int i = 0; i < attributes.getLength(); i++) { String name = attributes.getQName(i); if (name.equals("id")) { book.setId(attributes.getValue(i)); } else if (name.equals("class")) { book.setClassName(attributes.getValue(i)); } book.setId(attributes.getValue(i)); //System.out.println(name); System.out.println("第" + bookIndex + "本书的" + attributes.getQName(i) + "是:" + attributes.getValue(i)/*attributes.getValue(Qname)*/); } } else if (!qName.equals("bookStore")) { System.out.print("第" + bookIndex + "本书的" + qName + "是:"); } } //遍历标签内的内容 @Override public void characters(char[] ch, int start, int length) throws SAXException { value = new String(ch, start, length); //如果标签下没有内容,如bookstore与book之间就没有内容,将不打印 if (!value.trim().equals("")) { System.out.println(value); } } //遍历元素的结束标签 @Override public void endElement(String uri, String localName, String qName) throws SAXException { if (qName.equals("book")) { bookList.add(book); book = null; System.out.println("============================第" + bookIndex + "本书结束了========================="); } else if (qName.equals("name")) { book.setName(value); } else if (qName.equals("author")) { book.setAuthor(value); } else if (qName.equals("year")) { book.setYear(value); } } public List<Book> getBookList() { return bookList; } }
相关文章推荐
- jaxp 解析xml 小demo 对xml文件标签实现增删改查crud操作
- 在Spring的XML文件中通过命名空间配置的标签是怎么解析的?
- maven的pom.xml配置文件中常用的配置标签解析(2018-03-13)
- 解析XML--用php,dom来获得xml文件里的标签内value
- 根据Schema文件编写xml并解析xml文件
- maven的pom.xml配置文件中常用的配置标签解析
- struts.xml配置文件的各个 标签/属性 解析(转)
- c 根据libxml库解析xml文件
- 根据传入的条件解析对应的XML文件,并存入数据库
- c语言解析xml文件
- 【Android网络开发の3】XML之PULL方式 解析和生成XML文件
- android中代码解析drawable的xml文件
- java-web 之 第二讲 -- dom4j 解析 XML 文件
- 使用demo4j解析xml文件
- Golang解析xml文件
- Android开发--详解SAX解析XML文件
- AndroidManifest.xml文件解析
- android XML 文件解析~SAX方式!
- Java dom4j解析RESTFull风格发布的WebService的xml文件
- xml文件解析类及Android项目中常用到的两种获取xml文件方式