XML文件的解析和生成(DOM)
来源:互联网 发布:php配置环境工具 编辑:程序博客网 时间:2024/05/23 01:15
在W3C中定义了SAX和DOM两种解析XML文件的方式,其中DOM是将XML文件转换成一个对象模型的集合,即DOM树,通过DOM接口,应用程序能够在任何时候访问XML文件中的任何一部分数据,这种方式也被称做随机访问机制。
/*——————————解析XML文件——————————*/
XML文件web.xml:
<?xml version="1.0" encoding="GBK"?><text><man><name>张三</name><email>zhangsan@163.com</email></man><man><name>李四</name><email>lisi@163.com</email></man></text>形成的DOM树:
解析的java代码:
import java.io.*;import org.xml.sax.*;import org.w3c.dom.*;import javax.xml.parsers.*;
</pre><pre name="code" class="java">public class ReadXml {public static void main(String[] args) throws IOException {//建立DocumentBuilderFactory工厂类DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//取得DocumentBuilderDocumentBuilder builder = null;try {builder = factory.newDocumentBuilder();} catch (ParserConfigurationException e) {e.printStackTrace();}//创建一个根节点Document document = null;try {document = builder.parse("D:" + File.separator + "web.xml");}catch (SAXException e) {e.printStackTrace();}//查找lingkman的节点NodeList nodeList = document.getElementsByTagName("man");for(int i = 0; i < nodeList.getLength(); i++){Element e = (Element)nodeList.item(i);//取出每一个元素System.out.println(e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());}}}
/*——————————生成XML文件——————————*/
生成的java代码:
import java.io.*;import org.w3c.dom.*;import javax.xml.parsers.*;import javax.xml.transform.*;import javax.xml.transform.dom.*;import javax.xml.transform.stream.*;
</pre><pre name="code" class="java">public class WriteXml {public static void main(String[] args) {//建立DocumentBuilderFactory工厂类DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//取得DocumentBuilderDocumentBuilder builder = null;try {builder = factory.newDocumentBuilder();} catch (ParserConfigurationException e) {e.printStackTrace();}//创建一个根节点Document doc = null;//创建一个DOM树doc = builder.newDocument();//创建各个节点Element manList = doc.createElement("manList");Element man = doc.createElement("man");Element address = doc.createElement("address");Element text = doc.createElement("text");//设置节点的文本内容man.appendChild(doc.createTextNode("张三"));address.appendChild(doc.createTextNode("中国"));//设置节点之间的关系manList.appendChild(man);manList.appendChild(address);text.appendChild(manList);doc.appendChild(text);/*--------------------------输出文档到文件中-------------------------------*///工厂类TransformerFactory tf = TransformerFactory.newInstance();//此抽象类的实例能够将源树转换为结果树Transformer t = null;try{t = tf.newTransformer();} catch (TransformerConfigurationException e) {e.printStackTrace();}//设置编码t.setOutputProperty(OutputKeys.ENCODING, "utf-8");//输出文档DOMSource source = new DOMSource(doc);//指定输出位置StreamResult result = new StreamResult(new File("D:" + File.separator + "output.xml"));try {//输出t.transform(source, result);}catch (TransformerException e) {e.printStackTrace();}}}所生成的XML文件output.xml:
<?xml version="1.0" encoding="utf-8" standalone="no"?><text><manList><man>张三</man><address>中国</address></manList></text>
生成的XML文件不是整齐的,那是因为,输出的时候不会考虑格式的换行。
——参考资料:《JavaWeb开发实战经典》
0 0
- XML文件的解析和生成(DOM)
- dom解析和生成XML文件
- 使用Dom生成xml文件和解析xml文件
- Dom解析、生成XML文件
- DOM生成和解析xml
- DOM解析XML和生成
- Dom生成Xml和解析Xml
- 生成带中文的xml文件(dom解析)
- xml文件的dom解析
- .DOM生成和解析XML文档
- DOM生成和解析XML文档
- DOM生成和解析XML文档
- Dom解析和生成XML文档
- JAVA DOM生成和解析XML实例
- Dom解析和生成XML文档
- Dom解析和生成XML文档
- DOM生成和XML文档解析
- Dom解析和生成XML文档
- android 按两次回退键退出
- 关于IO流的总结
- /bin/bash^M: bad interpreter: 没有那个文件或目录
- 自己动手写垃圾收集器
- 空间换时间--编程小绝招解决电话区号识别算法问题
- XML文件的解析和生成(DOM)
- 第十一周上机实践项目0——是春哥啊
- Hadoop2.4 MapReduce本地调试
- 清除浮动常用方法
- asp.net 学习之路之chart控件
- poj1151 Atlantis
- 一点点开始熟悉C++11的新特性
- CSS定位——position、float小结
- hdu 5229 ZCC loving string