DOM解析XML文件
2012-12-19 11:14
309 查看
XML(eXtended Markup Language,可扩展标记性语言)提供了一套跨平台,跨网络,跨程序的语言数据描述方式,使用XML可以方便地实现数据交换,系统配置,内容管理等常见功能。 |
在xml,引进css:如下:
<?xml version="1.0" encoding="UTF-8"?> <authors> <author> <name id="MR'ZLJ">xxxxxxxxx</name> <titles> <title><<高级开发工程师>></title> <title>"项目经理"</title> </titles> </author> <![CDATA[ 这时面的内容不解析,会直接显示 可以作为注释出现在在一个XML文件当中 与html中的"<!-- -->"功能类似 ]]> </authors>
css文件,用来 xml显示 html那样的效果
@CHARSET "UTF-8"; name { display:block; color:blue; font-size:20pt; font-weight:bold; } title { display:block; color:black; font-size:14pt; font-weight:normal; font-style:italic; }
这样就可以 像 html那样在页面不带标签的显示XML文件。
2,DOM解析XML文件
DOM解析操作,基于DOM(Document Object Model,文档对象模型)的XML分析器将一个XML文档转换成一个对象模型的集合(DOM树),应用程序可以通过对这个对象模型的操作,来实现对XML文档数据的操作。如下:
xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/css" href="attrib.css"?> <addresslist> <linkman> <name>张四</name> <email>xxxxx@sina.com</email> </linkman> <linkman> <name>张三</name> <email>xxxxxx@sina.com</email> </linkman> </addresslist>
DOM解析代码 如下:
package com.etc.domxml; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class DOMDemo01 { public static void main(String[] args) { //1.建立documentBuilderFactory,以用于取得documentbuilder DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); //2.通过docuentbuilderfactory取得documentBuilder DocumentBuilder builder=null; try { builder=factory.newDocumentBuilder(); } catch (Exception e) { e.printStackTrace(); } //3.定义 document接口对像,通过 documentbuilder类进行dom树的转换操作 Document doc=null; try { doc=builder.parse("dom_demo_01.xml"); } catch (Exception e) { e.printStackTrace(); } NodeList nl=doc.getElementsByTagName("linkman"); /*System.out.println("姓名:"+nl.item(0).getFirstChild().getNodeValue()); System.out.println("姓名:"+nl.item(1).getFirstChild().getNodeValue());*/ for(int i=0;i<nl.getLength();i++){ Element e=(Element) nl.item(i); System.out.println("姓名:"+e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue()); System.out.println("邮箱:"+e.getElementsByTagName("email").item(0).getFirstChild().getNodeValue()); } } }
这样就可以 完成 xml 的解析了。
3,当然在解析 XML的同时 ,我们还可以生成XML文件,并输出到文件中,代码如下:
package com.etc.domxml; import java.io.File; import javax.transaction.Transaction; import javax.xml.crypto.dsig.Transform; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; public class DOMDemo02 { public static void main(String[] args) { DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=null; try { builder=factory.newDocumentBuilder(); } catch (ParserConfigurationException e) { e.printStackTrace(); } Document doc=null; doc=builder.newDocument(); Element school=doc.createElement("school"); Element colleage=doc.createElement("colleage"); Element name=doc.createElement("name"); Element email=doc.createElement("email"); name.appendChild(doc.createTextNode("张三")); email.appendChild(doc.createTextNode("xxxxxxxxxxxx@sina.com")); colleage.appendChild(name); colleage.appendChild(email); school.appendChild(colleage); doc.appendChild(school); 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) { // TODO Auto-generated catch block e.printStackTrace(); } } }
就到这吧,因为有点忘记了,写一下,让自己有空可以查找 ,也可以 分享一下。
本文出自 “TRY” 博客,请务必保留此出处http://zhanglj13.blog.51cto.com/1860038/1093803
相关文章推荐
- DOM解析xml文件
- xml文件解析—DOM方式
- Android开发(8)--Android中DOM解析xml文件
- 利用java的Dom解析XML文件
- java语言连接mysql数据库并利用XML解析工具DOM生成XML文件,然后利用DOM SAX对所生成XML文件里的详细信息进行解析
- Android -使用DOM(文档对象模型)解析XML文件
- Dom解析XML文件具体用法
- 用“XML解析开发包Jaxp”对XML文件进行Dom方式的CRUD操作
- 用DOM/JDOM解析XML文件
- PHP通过DOM解析XML文件或者xml字符串
- Android数据存储之DOM解析XML文件(输出部分)
- Java乔晓松-使用SAX,DOM,pull解析XML文件以及pull解析生成xml文件
- Dom解析XML文件具体用法
- Android -使用DOM(文档对象模型)解析XML文件
- Java眼中的XML--文件读取--1 应用DOM方式解析XML
- dom对xml 文件的解析
- 使用SAX或者DOM或者pull解析XML文件
- Android学习笔记42:XML文件解析(DOM方式)
- 使用Dom解析xml文件
- dom、dom 4j解析xml文件