Java中的XML(写)
来源:互联网 发布:手机站如何优化 编辑:程序博客网 时间:2024/05/16 08:33
DOM方式生成XML
public static void cxml() { // TODO Auto-generated method stub DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); org.w3c.dom.Document docu = db.newDocument(); docu.setXmlStandalone(true); // 创建一个节点作为根节点 org.w3c.dom.Element booksElement = docu.createElement("books"); // 创建一个节点作为子节点 org.w3c.dom.Element bookElement = docu.createElement("book"); // 给子节点添加子节点以内容 bookElement.setAttribute("id", "1");// 给子节点设置属性 // 再创建一个子节点 org.w3c.dom.Element name = docu.createElement("name"); name.setTextContent("遇见位置的自己"); // 将子节点添加到根节点之间 bookElement.appendChild( name); booksElement.appendChild(bookElement); //将根节点添加 docu.appendChild(booksElement); //通过工厂方式将xml文件生成 TransformerFactory tsf =TransformerFactory.newInstance(); Transformer ts = tsf.newTransformer(); ts.setOutputProperty(OutputKeys.INDENT,"yes");//使得xml换行 ts.transform( new DOMSource(docu), new StreamResult(new File("eric.xml"))); }
SAX方式生成XML
- 导入SAXParserHandler类、Book类、以及books.xml文件
public class SAXXML { //本节课要使用解析后生成的bookList进行xml文件编写 public static ArrayList<Book> parseXML (){ SAXParserHandler handler = null; //锟斤拷取一锟斤拷SAXParserFactory锟斤拷实锟斤拷 SAXParserFactory factory = SAXParserFactory.newInstance(); //通锟斤拷factory锟斤拷取SAXParser实锟斤拷 try { SAXParser parser = factory.newSAXParser(); //锟斤拷锟斤拷SAXParserHandler锟斤拷锟斤拷 handler = new SAXParserHandler(); parser.parse("books.xml", handler); System.out.println("~!~!~!共有" + handler.getBookList().size() + "本书"); for (Book book : handler.getBookList()) { System.out.println(book.getId()); System.out.println(book.getName()); System.out.println(book.getAuthor()); System.out.println(book.getYear()); System.out.println(book.getPrice()); System.out.println(book.getLanguage()); System.out.println("----finish----"); } } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return handler.getBookList(); } public static void creatXML() throws TransformerConfigurationException, IOException, SAXException{ //获取要转换的ArrayList ArrayList<Book> bookList = parseXML(); //创建xml //1.通过SAXTransformerFactory对象 SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); //2.通过SAXTransformerFactory对象tff创建TransformerHandler对象handler TransformerHandler handler = tff.newTransformerHandler(); //3.通过handler对象创建transFormer对象 Transformer tr = handler.getTransformer(); //4.通过Transformer对象对XML文件进行设置 tr.setOutputProperty(OutputKeys.INDENT , "yes");//换行 tr.setOutputProperty(OutputKeys.ENCODING, "utf-8");//设置xml编码 //5.创建Result对象并使其与handler进行关联 File f = new File("src/newbook.xml"); if(!f.exists()){ f.createNewFile(); } Result result = new StreamResult(new FileOutputStream(f)); handler.setResult(result);//与handler进行关联 //6,通过handler对xml文件进行写 //打开document handler.startDocument(); AttributesImpl atts = new AttributesImpl();//创建属性对象 handler.startElement("","" , "bookstore", atts); for (Book book : bookList) { atts.clear();//清除上一个 atts.addAttribute("", "", "id", "", book.getId()); handler.startElement("","" , "book", atts); handler.characters(book.getName().toCharArray(), 0, book.getName().length()); handler.endElement("", "", "book"); handler.endElement("", "", "bookstore"); } //关闭document handler.endDocument(); } public static void main(String[] args) throws TransformerConfigurationException, IOException, SAXException { // TODO Auto-generated method stub creatXML(); }
0 0
- Java中的XML(写)
- Java操作XML文件(写)
- java写xml
- java读/写XML
- java写xml
- Java 写xml文件
- java写xml文件
- Java写XML文件
- java中的xml 解析xml(上)
- java中的xml,解析xml(下)
- JAVA-XML(读(解析)写xml文件)
- Java中的XML(读)
- java 写 xml 中文乱码
- java写xml乱码解决
- java代码写xml文件
- 利用java 写XML 修改XML文件
- xml的解析的简介(写到java代码)
- java中的XML
- 设计模式随笔-适配器模式
- 9E大帆玩英雄联盟
- 在同一台机器上安装多个版本jdk,修改环境变量不生效
- Python学习10:@perporty
- 【模板】Tarjan
- Java中的XML(写)
- codevs 2833 奇怪的梦境(拓扑排序)
- mybatis动态查询表
- 编译原理词法分析实现
- 毕业五年总结(转载的别人帖子,挺励志)
- windows上使用linux的开源代码开发windows程序
- 程序开发类的问题方法
- MapReduce_Join示例
- BZOJ 3721 PA2014 Final Bazarek