java xml 框架 dom4j 解析 xml 字符串 和 利用 dom4j 创建 XML 的方法
来源:互联网 发布:淘宝店铺音乐怎么修改 编辑:程序博客网 时间:2024/06/10 03:52
dom4j 是 java 下最常用的 xml 解析框架之一,其他还有 jdom、dom 都属于优秀的 xml 框架,这里就以 dom4j 为例,示范 xml 字符串的解析
这是代码中 XML 的结构,metaData 内有一个 array 结构,需要循环读取
<?xml version="1.0"?><item name="\"20160202014140_208_59400.jpg\"" id="\"9737853a-3cb8-48d5-a735-a75c3e8fa721\"" relativePath="\"user\\Obama\\20160202014140_208_59400.jpg\""> <fileInfo fileIndexed="\"2016-02-02" numPages="\"1\"" resolution="\"96\"" width="\"1600\"" height="\"1200\"" fileSize="\"202.42"> <metaData> <item name="\"Width" value="\"1600\"" /> <item name="\"Height" value="\"1200\"" /> <item name="\"Resolution\"" value="\"96\"" /> </metaData> <boxes /> </fileInfo></item>
代码演示
package dom4j;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.io.SAXReader;import org.dom4j.jaxb.JAXBReader;import org.dom4j.Element;import java.awt.Component;import java.util.Iterator;import java.util.List;public class Test01{ public static void main(String[] args) { // xml 示範字符串 String xml = "<item name=\"20160202014140_208_59400.jpg\" id=\"9737853a-3cb8-48d5-a735-a75c3e8fa721\" relativePath=\"user\\Obama\\20160202014140_208_59400.jpg\"><fileInfo fileIndexed=\"2016-02-02 01:41:32\" numPages=\"1\" resolution=\"96\" width=\"1600\" height=\"1200\" fileSize=\"202.42 Kb\"><metaData><item name=\"Width (px)\" value=\"1600\" /><item name=\"Height (px)\" value=\"1200\" /><item name=\"Resolution\" value=\"96\" /></metaData><boxes /></fileInfo></item>"; try { // 載入 xml Document doc = DocumentHelper.parseText(xml); // 置 root Element element = doc.getRootElement(); // node by root String name = element.attributeValue("name"); String id = element.attributeValue("id"); String relativePath = element.attributeValue("relativePath"); System.out.println(name); System.out.println(id); System.out.println(relativePath); // node by /item/fileInfo element = element.element("fileInfo"); String fileIndexed = element.attributeValue("fileIndexed"); String numPages = element.attributeValue("numPages"); String resolution = element.attributeValue("resolution"); System.out.println(fileIndexed); System.out.println(numPages); System.out.println(resolution); // node by /item/fileInfo/metaData element = doc.getRootElement(); element = element.element("fileInfo"); element = element.element("metaData"); Iterator it = element.elementIterator(); // 遍歷 metaData 内的 item 并打印 while (it.hasNext()) { // 取得 item Element item = (Element) it.next(); String n = item.attributeValue("name"); String v = item.attributeValue("value"); System.out.print(n); System.out.print(": "); System.out.println(v); } } catch (DocumentException e) { e.printStackTrace(); } }}
通过 dom4j 的解析,xml字符串显示结果如下:20160202014140_208_59400.jpg
9737853a-3cb8-48d5-a735-a75c3e8fa721
user\Obama\20160202014140_208_59400.jpg
2016-02-02 01:41:32
1
96
Width (px): 1600
Height (px): 1200
Resolution: 96
创建 XML 代码如下:
package code02;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;public class MakeXML{ public static void main(String[] args) { // 创建 XML 对象 Document doc = DocumentHelper.createDocument(); // 设置编码 doc.setXMLEncoding("utf-8"); // 创建一个根节点 Element root = doc.addElement("root"); // 创建节点,添加属性,设置值 Element elementA = root.addElement("elementA").addAttribute("color", "red"); elementA.setText("this is red"); Element elementB = root.addElement("elementB").addAttribute("color", "blue"); elementA.setText("this is blue"); // 创建节点,添加属性,设置值 Element elementA1 = elementA.addElement("elementA1").addAttribute("color", "pink"); elementA1.setText("this is pink"); Element elementA2 = elementA.addElement("elementA2").addAttribute("color", "brown"); elementA2.setText("this is brown"); Element elementA3 = elementA.addElement("elementA3").addAttribute("color", "gray"); elementA3.setText("this is gray"); // 创建节点,添加属性,设置值 Element elementB1 = elementB.addElement("elementB1").addAttribute("color", "green"); Element elementB2 = elementB.addElement("elementB2").addAttribute("color", "orange"); Element elementB3 = elementB.addElement("elementB3").addAttribute("color", "yellow"); // 输出 XML String strXML = doc.asXML(); System.out.println(strXML); }}
输出结果:
<?xml version="1.0" encoding="utf-8"?><root> <elementA color="red">this is blue <elementA1 color="pink">this is pink</elementA1> <elementA2 color="brown">this is brown</elementA2> <elementA3 color="gray">this is gray</elementA3> </elementA> <elementB color="blue"> <elementB1 color="green"/> <elementB2 color="orange"/> <elementB3 color="yellow"/> </elementB></root>
dom4j 的下载地址:http://sourceforge.net/projects/dom4j/
Q群讨论 236201801
.
0 0
- java xml 框架 dom4j 解析 xml 字符串 和 利用 dom4j 创建 XML 的方法
- 利用dom4j创建XML和解析XML
- 利用dom4j创建XML和解析XML
- Dom4j创建和解析XML
- dom4j创建和解析xml
- 利用dom4j解析XML
- 利用dom4j解析xml
- 利用dom4j解析xml
- Dom4J解析XML和创建XML文件
- dom4J创建xml和解析xml文件
- dom4j 创建,解析xml
- dom4j解析xml,dom4j创建xml
- dom4j解析xml字符串
- DOM4J解析xml字符串
- dom4j解析xml字符串
- dom4j解析xml字符串
- dom4j解析xml字符串
- DOM4J解析XML字符串
- virtualhost配置不成功,纠结了好几个小时的问题 :AH01630: client denied by server configuration
- hdu2665 主席树模板题
- hdoj 1217 Arbitrage(floyd+处理名字为字符串的情况)
- Linux查看磁盘剩余空间
- POJ 1828 解题报告
- java xml 框架 dom4j 解析 xml 字符串 和 利用 dom4j 创建 XML 的方法
- 数据可视化 -- 入门(draft version)
- Linux下如何卸载软件(Debian系)
- 【NYOJ】[8]一种排序
- JavaScript继承详解(一)
- 【吐槽】这是第200篇博文
- 如何创建相对路径的快捷方式
- JavaScript继承详解(二)
- JavaScript继承详解(三)