xml--通过jdom解析及生产XML
JDOM是一种使用 XML 的独特 Java 工具包,用于快速开发 XML 应用程序。它的设计包含 Java 语言的语法乃至语义。 JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。 JDOM 主要用来弥补DOM及SAX在实际应用当中的不足之处。这些不足之处主要在于SAX没有文档修改、随机访问以及输出的功能,而对于DOM来说,JAVA程序员在使用时来用起来总觉得不太方便 jdom官方网站http://www.jdom.org/,目前最新包为:JDOM2.0.5. 例子: package com.jdom; import java.io.File; import java.io.FileOutputStream; import java.util.List; import org.jdom2.Attribute; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import org.jdom2.output.Format; import org.jdom2.output.XMLOutputter; public class JDomTest2 { public static void main(String[] args) throws Exception { SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(new File("student.xml")); Element element = doc.getRootElement(); System.out.println(element.getName()); // 获取第一个 Element hello = element.getChild("学生"); System.out.println(hello.getText()); List<Element> els = element.getChildren(); for (Element el : els) { List elList = el.getAttributes(); for (int i = 0; i < elList.size(); i++) { Attribute attr = (Attribute) elList.get(i); String attrName = attr.getName(); String attrValue = attr.getValue(); System.out.println(attrName + "=" + attrValue); } System.out.println("姓名:" + el.getChildText("姓名")); System.out.println("性别:" + el.getChildText("性别")); System.out.println("年龄" + el.getChildText("年龄")); System.out.println("==============="); } //可以对XML进行编辑 Element addEl = new Element("学生"); Attribute attr = new Attribute("学号","4"); Element addEl01 = new Element("姓名"); addEl01.setText("我爱罗"); addEl.addContent(addEl01); Element addEl02 = new Element("性别"); addEl02.setText("男"); addEl.addContent(addEl02); addEl.setAttribute(attr); element.addContent(addEl); XMLOutputter out = new XMLOutputter(Format.getPrettyFormat()); out.output(doc,new FileOutputStream("student2.xml")); } } 1、首先读取XML文件。 2、获取根节点,并取得根节点下的子节点,详见截图。 3、输出XML文件各个节点的值,详见截图。
4、通过JDOM可以编进XML,并生成新的XML,详见截图。 附XML: <?xml version="1.0" encoding="utf-8"?> <学生名册 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="student.xsd" > <学生 学号="1"> <姓名>张三</姓名> <性别>男</性别> <年龄>20</年龄> </学生> <学生 学号="2"> <姓名>李四</姓名> <性别>女</性别> <年龄>19</年龄> </学生> <学生 学号="3"> <姓名>王五</姓名> <性别>男</性别> <年龄>21</年龄> </学生> </学生名册> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |