向xml文件中添加元素;
未添加前的xml文档;
添加元素创建的新文件
新文件中的xml元素;
DOM获取元素的思路:XML的DOM解析技术详解
DOM技术添加元素的思路;
1,获得节点 2,创建元素createElement .内容createTextNode ,元素属性createAttribute 3实例化xml转化器 4,创建xml转化的工厂 5,获得要添加元素的节点 6,创建输出流,将新文档写出去 7,使用转化器来装换
JAVA实现代码如下;代码已经打包
基本属性;
package Dom解析; /** * 设置对象的基本属性 * @author Administrator * */ public class Student { String name; String sex; String cla; int no; int num; }
转换;
package Dom解析; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.Text; /** * 添加元素到xml文档中去 * doc.createElement添加元素 * doc.createTextNode创建元素的内容 * doc.createAttribute创建元素的属性 * * @author Administrator * */ public class ADDelements { private static List<Student> liststu = new ArrayList<Student>(); private static Student stu; public static void main(String[] args) throws Exception { String path = "C:\\Users\\Administrator\\Desktop\\xml\\student2.xml"; // 实例化一个用来创建工厂对象的DOM解析器 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // 创建解析器对象 DocumentBuilder builder = factory.newDocumentBuilder(); // 创建解析器需要解析的xml文档路径 Document doc = builder.parse(path); /* * 向xml文档中添加元素 */ // NodeList nodelist1 = doc.getElementsByTagName("stu"); // Node node11 = nodelist1.item(2); // Text text1 = doc.createTextNode("男"); // node11.appendChild(text1); //获得节点 Node nodelast =doc.getLastChild(); //添加标签 Element e1 =doc.createElement("stu"); nodelast.appendChild(e1); //添加元素的属性 Attr atrr = doc.createAttribute("no"); atrr.setValue("12343"); e1.setAttributeNode(atrr); //添加标签createElement Element e2 = doc.createElement("name"); e1.appendChild(e2); //添加元素createTextNode Text text2 =doc.createTextNode("杨过"); e2.appendChild(text2); //添加标签createElement // Element e4 = doc.createElement("sex"); // e1.appendChild(e4); // Text text3=doc.createTextNode("男"); // e4.appendChild(text3); Element e6 = doc.createElement("sex"); e6.setTextContent("女"); e1.appendChild(e6); //添加标签createElement Element e5 = doc.createElement("cla"); e1.appendChild(e5); Text text4=doc.createTextNode("古墓"); e5.appendChild(text4); //将dom文档转化为xml文档 //实例化转化xml的文档 TransformerFactory transfactory = TransformerFactory.newInstance(); //创建转化器 Transformer transformer=transfactory.newTransformer(); //获得需要添加元素的根节点的资源 DOMSource xmlSource = new DOMSource(nodelast); //输出流 String file = "C:\\Users\\Administrator\\Desktop\\xml\\student3.xml"; StreamResult outputTarget = new StreamResult(new FileOutputStream(file)); //开始转换 transformer.transform(xmlSource, outputTarget); printxml(doc); for (Student stu : liststu) { System.out.println(stu.name + " " + stu.no + " " + stu.num + "" + stu.sex + " " + stu.cla); } } /** * 解析xml文档内容的方法 * @param node 传入的Document新的对象 */ public static void printxml(Node node) { // 得到所有的子节点 NodeList list = node.getChildNodes(); // 遍历Nodelist中的子节点 for (int i = 0; i < list.getLength(); i++) { Node node1 = list.item(i); // 获得节点的所有名称 String str = node1.getNodeName(); // System.out.println(str); // 判断node1是不是元素 if (node1 instanceof Element) { if (str.equals("stu")) { stu = new Student(); liststu.add(stu); // 获得元素标签的属性 NamedNodeMap mnm = node1.getAttributes(); for (int j = 0; j < mnm.getLength(); j++) { Node nodes = mnm.item(j); String name = nodes.getNodeName(); String val = nodes.getNodeValue(); if (name.equals("no")) { stu.no = Integer.parseInt(val); } if (name.equals("num")) { stu.num = Integer.parseInt(val); } } } // 都得到标签元素的内容 if (str.equals("name")) { stu.name = node1.getTextContent(); } if (str.equals("sex")) { stu.sex = node1.getTextContent(); } if (str.equals("cla")) { stu.cla = node1.getTextContent(); } } printxml(node1); } } }
DOM解析与添加只能对少量数据进行操作,并且代码的步骤都是固定的;
相关推荐
XML+DOM+解析和生成+教程 - 本资源是一个XML的教程,教你如何用Java的DOM技术解析和生成XML文档,包括创建和遍历节点,修改和删除属性,添加和删除元素等。
DOM 解析器把 XML 文档转化为一个包含其内容的树,并可以对树进行遍历。用 DOM 解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和...
利用DOM 对象, 开发人员可以对文档进行读取、搜索、修改、添加和删除。 微软的开发平台ASP. NET 允许开发人员在源码中插入XML 注释, 所有的XML 注释都在3 个向前的斜线之后( / / / ) , C# 解析器可以把代码中...
1.3.7 作用域解析和闭包 1.3.8 迭代对象 1.3.9 函数的调用和引用(不带括号) 1.4 实例:WYSIWYGJavaScript翻转图 1.5 小结 第2章 创建可重用的对象 2.1 对象中包含什么 2.1.1...
这是用三中不同的方法读取XML文件的信息,做了一些小的比较,主要体现在三种解析技术的性能上。。。适合于初学者 里面卖弄包含一个dom4j解析的JAR包,将该JAR文件添加进来即可.
基于phpdom技术,实现对xml文件的解析,利用xml文件实现字典功能,同时可以向词库添加和删除词条。使用MFC结构编写,适用于phpdom初学者。
1.3.7 作用域解析和闭包 1.3.8 迭代对象 1.3.9 函数的调用和引用(不带括号) 1.4 实例:WYSIWYGJavaScript翻转图 1.5 小结 第2章 创建可重用的对象 2.1 对象中包含什么 2.1.1...
1.3.7 作用域解析和闭包 1.3.8 迭代对象 1.3.9 函数的调用和引用(不带括号) 1.4 实例:WYSIWYGJavaScript翻转图 1.5 小结 第2章 创建可重用的对象 2.1 对象中包含什么 2.1.1...
编写时涉及到的技术要点:异常处理、Swing图形界面、多线程、本地IO操作、网络编程、XMLDOM操作。 需要改进的地方:UI进阶:HTML解析查看摘要、菜单功能完善。本地化数据。(支持离线浏览)。
2. XML解析技术:DOM或SAX或成熟的XML解析库。 3. 无状态SessionBean、MessageBean或web 服务 。 4. 包含以下设计模式中的四种:工厂、单例、合成、装饰器、适配器、责任链、对象缓存器、观察者,或自己提炼一种设计...
12.2.5 XML解析器和DOM 12.2.6 XML中的链接和查询 12.2.7 转换XML 12.3 为何使用XML 12.3.1 用于单位之间的信息交换 12.3.2 信息发布 12.4 SQL Server中的XML支持 12.4.1 Transact-SQL语言扩展 12.4.2 OPENXM 12.4.3...
• sample01.htm 将JavaScript代码插入在标签与标签之间 • sample02.htm 将JavaScript代码放在了标签与标签之间 • sample03.htm JavaScript与HTML混合执行 • sample04.htm 在同...
3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常类 71 3.3.5 errorhandler接口 73 3.3.6 使用sax解析xml...
3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常类 71 3.3.5 errorhandler接口 73 3.3.6 使用sax解析xml...
从 后期课程层来说,因为我们重点是⼤数据,但前期需要锻炼编程技术与思维。经 过我们多年开发和授课的项⽬经理分析,满⾜这两点,⽬前市场上最好理解和掌 握的技术是J2EE,但J2EE⼜离不开页⾯技术。所以第⼀阶段...