java 解析XML生成bean
2011-04-28 11:41
351 查看
XML:
bean:
解析类:
<?xml version="1.0" encoding="UTF-8"?> <books> <book> <name>java</name> <prise>99.0</prise> <author>11</author> <press>smg</press> </book> </books>
bean:
public class BookBean { private String name; private String prise; private String author; private String press; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPrise() { return prise; } public void setPrise(String prise) { this.prise = prise; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getPress() { return press; } public void setPress(String press) { this.press = press; } }
解析类:
import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import org.dom4j.util.XMLErrorHandler; import org.xml.sax.Attributes; import org.xml.sax.ContentHandler; import org.xml.sax.InputSource; import org.xml.sax.Locator; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.XMLReaderFactory; public class XMLParseToBean implements ContentHandler { private StringBuffer buffer = null; private BookBean bean; @Override public void characters(char[] ch, int start, int length) throws SAXException { buffer.append(ch, start, length); } @Override public void endDocument() throws SAXException { } @Override public void endElement(String uri, String localName, String name) throws SAXException { if (localName.equalsIgnoreCase("name")) { bean.setName(buffer.toString().trim()); } else if (localName.equalsIgnoreCase("prise")) { bean.setName(buffer.toString().trim()); } else if (localName.equalsIgnoreCase("author")) { bean.setName(buffer.toString().trim()); } else if (localName.equalsIgnoreCase("press")) { bean.setName(buffer.toString().trim()); } buffer.setLength(0); } @Override public void endPrefixMapping(String prefix) throws SAXException { } @Override public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { } @Override public void processingInstruction(String target, String data) throws SAXException { } @Override public void setDocumentLocator(Locator locator) { } @Override public void skippedEntity(String name) throws SAXException { } @Override public void startDocument() throws SAXException { } @Override public void startElement(String uri, String localName, String name, Attributes atts) throws SAXException { buffer = new StringBuffer(); if (localName.equalsIgnoreCase("book")) { bean = new BookBean(); } } @Override public void startPrefixMapping(String prefix, String uri) throws SAXException { } public StringBuffer getBuffer() { return buffer; } public void setBuffer(StringBuffer buffer) { this.buffer = buffer; } public BookBean getBean() { return bean; } public void setBean(BookBean bean) { this.bean = bean; } public static void main(String[] args) { String fileName = "test.xml"; String filePath = "D:"; File file = new File(filePath, fileName); InputStream strm = null; try { strm = new FileInputStream(file); } catch (FileNotFoundException e1) { e1.printStackTrace(); } /** * 如果xml是String形式的则先转换成流 */ //strm = new ByteArrayInputStream(orgXml.getBytes()); //orgXml是要解析的String形式的XML InputSource Source = new InputSource(strm); XMLParseToBean hd = new XMLParseToBean(); try { XMLReader parser = XMLReaderFactory .createXMLReader("org.apache.xerces.parsers.SAXParser"); parser.setErrorHandler(new XMLErrorHandler()); parser.setContentHandler(hd); // 启用验证(暂时不校验) parser.setFeature("http://xml.org/sax/features/validation", false); parser .setFeature( "http://apache.org/xml/features/nonvalidating/load-external-dtd", false); // 开始解析文档 parser.parse(Source); //获取生成的bean hd.getBean(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- 【java】struts和ajax的小例子②→js解析生成的xml
- [XML]JAVA解析XSD,并根据选择节点生成XSL
- java与xml之DOM4J生成和解析XML文档
- 使用Java jaxb处理bean生成xml中一些问题
- Java解析XML与生成XML文件
- java 生成和解析xml
- JAVA DOM4j解析XML数据到自定义javabean
- java WebService接口开发注意点 java 利用Xstream生成和解析xml知识结构
- 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合
- 利用Mybatis-generator自动生成java-bean和dao和mapper.xml
- 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合
- 【Java编程】SAX XML Parser解析、生成XML文件
- SAX 解析XML 将xml转换成javaBean
- 撑持链式方法生成/解析XML的Java类库 (依靠dom4j) - 代码共享
- 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合
- java生成解析xml的另外两种方法JAXB
- Java之JDOM生成XML和解析
- Java自定义生成与解析(Dom4J)XML文件
- 利用Excel的vba脚本根据数据库表结构自动生成java的action,bean,dao,mode,service,xml,sql,jsp等
- java使用dom4j生成与解析xml文档的方法示例