读取xml文件

xiaoxiao2021-02-28  164

简单的一个xml文件 <?xml version="1.0" encoding="UTF-8"?> <书架> <书> <书名 name="wang">web实战开发</书名> <作者>王国辉</作者> <售价>100</售价> </书> <书> <书名>java核心技术</书名> <作者>Gary.Cornnell</作者> <售价>100</售价> </书> </书架> 然后用java写程序来读取该文件 import java.io.FileOutputStream; import java.io.IOException; //所有相关的包都是org.w3c.dom import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class Factory { /*public static void main(String[] args) throws Exception { //创建工厂 DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); //创建dom解析器 DocumentBuilder builder=factory.newDocumentBuilder(); //解析xml文档,得到代表文档的document Document document=builder.parse("src/book.xml"); } */ @Test public void read() throws Exception { DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document document=builder.parse("G:\\JAVA TEST\\Test\\src\\test1\\book.xml"); NodeList list=document.getElementsByTagName("书名"); Node node=list.item(1); String content=node.getTextContent(); System.out.println(content); } @Test public void read1() throws Exception { DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document document=builder.parse("G:\\JAVA TEST\\Test\\src\\test1\\book.xml"); Node node=document.getElementsByTagName("书架").item(0); root(node); } private void root(Node node) //私有方法才能运行成功 { if(node instanceof Element) { System.out.println(node.getNodeName()); } NodeList list=node.getChildNodes(); for(int i=0;i<list.getLength();i++) { Node child=list.item(i); root(child); } } @Test public void read3() throws Exception { DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document document=builder.parse("G:\\JAVA TEST\\Test\\src\\test1\\book.xml"); Element bookname=(Element)document.getElementsByTagName("书名").item(0); //在知道类型的情况下转化 String value=bookname.getAttribute("name"); System.out.println(value); } @Test public void read4() throws Exception { DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder Builder=factory.newDocumentBuilder(); Document document=Builder.parse("G:\\JAVA TEST\\Test\\src\\test1\\book.xml"); //创建节点 Element Class=document.createElement("类别"); Class.setTextContent("it"); //把该元素添加到节点 //获得参考节点 Element refnode=(Element)document.getElementsByTagName("售价").item(0); Element book=(Element)document.getElementsByTagName("书").item(0); //插入到指定位置 book.insertBefore(Class, refnode); //把更新内容保存的xml文档 TransformerFactory transformerfactory=TransformerFactory.newInstance(); Transformer transformer=transformerfactory.newTransformer(); transformer.transform(new DOMSource(document),new StreamResult(new FileOutputStream("G:\\JAVA TEST\\Test\\src\\test1\\book.xml"))); } }
转载请注明原文地址: https://www.6miu.com/read-25770.html

最新回复(0)