xml02 XML编程(CRUD)增删查改

XML解析技术概述
 
 
Demo2.java
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; public class Demo2 { public static void main(String args[])throws Exception { //1.创建工程 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //2.得到dom解析器 DocumentBuilder builder = factory.newDocumentBuilder(); //3.解析xml文档,得到代表文档的document Document document = builder.parse("src/book.xml"); } }


xml解析技术概述和使用Jaxp对xml文档进行dom解析

 package cn.lysine; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; //使用dom方式对xml文档进行 增删查改 CRUD public class Demo3 { // 读取xml文档中;<书名>java就业培训中心</书名> 节点的值 @Test public void read1() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); NodeList list = document.getElementsByTagName("书名"); Node node = list.item(1); String content = node.getTextContent(); System.out.println(content); //输出 java就业培训中心 } //得到xml中标签属性的值 @Test public void read2() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); // 得到根结点 Node root = document.getElementsByTagName("书架").item(0); list(root); } private void list(Node node) { System.out.println(node.getNodeName()); NodeList list = node.getChildNodes(); for(int i = 0; i <list.getLength(); i++ ){ Node childe = list.item(i); list(childe); } } //得到xml文档中标签属性的值:<书名 name="xxxx">java就业培训教材</书名> @Test public void read3() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); Element bookname = (Element)document.getElementsByTagName("书名").item(0); String value = bookname.getAttribute("name"); System.out.println(value); } //输出 xxxx } 
 
 
import java.io.FileOutputStream; import java.io.IOException; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; //使用dom方式对xml文档进行 增删查改 CRUD public class Demo3 { // 读取xml文档中;<书名>java就业培训中心</书名> 节点的值 @Test public void read1() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); NodeList list = document.getElementsByTagName("书名"); Node node = list.item(0); String content = node.getTextContent(); System.out.println(content); } //得到xml中标签属性的值 @Test public void read2() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); // 得到根结点 Node root = document.getElementsByTagName("书架").item(0); list(root); } private void list(Node node) { System.out.println(node.getNodeName()); NodeList list = node.getChildNodes(); for(int i = 0; i <list.getLength(); i++ ){ Node childe = list.item(i); list(childe); } } //得到xml文档中标签属性的值:<书名 name="xxxx">java就业培训教材</书名> @Test public void read3() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); Element bookname = (Element)document.getElementsByTagName("书名").item(0); String value = bookname.getAttribute("name"); System.out.println(value); } //向xml文档中添加节点:<售价>59.00元</售价> @Test public void add() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); //创建节点 Element price = document.createElement("售价"); price.setTextContent("59.00元"); //得到参考节点 Element refNode = (Element) document.getElementsByTagName("售价").item(0); //得到要挂崽的节点 把创建的节点挂到第一本书上 Element book = (Element)document.getElementsByTagName("书").item(0); //往book节点的指定位置插崽 book.insertBefore(price,refNode); //把更新后内存写回到xml文档 TransformerFactory tffactory = TransformerFactory.newInstance(); Transformer tf = tffactory.newTransformer(); tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/book.xml"))); } //add 向xml文档中添加节点:<书名>java就业培训教程</书名> 上添加name=“xxxx”属性 @Test public void addAttr() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); Element bookname = (Element) document.getElementsByTagName("书名").item(0); bookname.setAttribute("name", "xxxxx"); //把更新后内存写回到xml文档 TransformerFactory tffactory = TransformerFactory.newInstance(); Transformer tf = tffactory.newTransformer(); tf.transform(new DOMSource(document),new StreamResult(new FileOutputStream("src/book.xml"))); } //删除整个xml @Test public void delete1() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); //得到要删除的结点 Element e = (Element) document.getElementsByTagName("售价").item(0); //得到要删除的结点的爸爸 Element book = (Element) document.getElementsByTagName("书").item(0); //爸爸再删崽 book.removeChild(e); //把更新后内存写回到xml文档 TransformerFactory tffactory = TransformerFactory.newInstance(); Transformer tf = tffactory.newTransformer(); tf.transform(new DOMSource(document),new StreamResult(new FileOutputStream("src/book.xml"))); } public void delete2() throws Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); //得到要删除的结点 Element e = (Element) document.getElementsByTagName("售价").item(0); e.getParentNode().getParentNode().getParentNode().removeChild(e.getParentNode().getParentNode()); //把更新后内存写回到xml文档 TransformerFactory tffactory = TransformerFactory.newInstance(); Transformer tf = tffactory.newTransformer(); tf.transform(new DOMSource(document),new StreamResult(new FileOutputStream("src/book.xml"))); } //update 更新 public void update()throws ParserConfigurationException, SAXException, IOException,Exception{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("src/book.xml"); //得到要更新的结点 Element e = (Element) document.getElementsByTagName("售价").item(0); e.setTextContent("109元"); //把更新后内存写回到xml文档 TransformerFactory tffactory = TransformerFactory.newInstance(); Transformer tf = tffactory.newTransformer(); tf.transform(new DOMSource(document),new StreamResult(new FileOutputStream("src/book.xml"))); } }



转载于:https://www.cnblogs.com/firecode/archive/2011/12/24/2460926.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Web Game 架构设计1--服务器基本结构

ASP.NET Web Game 架构设计1--服务器基本结构 1. 基本结构图 2. 系统组成与角色 整个系统大体上分为三个部分&#xff1a;1.网页客户端。2.IIS Web服务器。3.数据库及逻辑服务器。其中Web服务器不处理任何逻辑&#xff0c;它的作用只有两点&#xff1a;1.承载用户。…

人人网 Windows Phone 7 应用开发起步

目前&#xff0c;人人网在国内高校学生中的普及率非常高。前段时间&#xff0c;大概是11月下旬的样子&#xff0c;人人网发布了Windows Phone 7客户端的公测版。我想&#xff0c;Windows Phone 7本地化的优劣&#xff0c;直接关系到其将来在国内的市场份额。而诸如人人等针对学…

XP Sp2下双机通过无线网卡实现Internet共享

两台均有无线网卡、装有XP SP2系统的计算机如何实现共享Internet上网呢&#xff0c;请参考一下步骤&#xff1a; 1、打开两台计算机的无线网络连接属性&#xff0c;并切换至“无线网络配置”页签。2、点中右下角的高级按钮设置&#xff0c;选中最下面的“仅计算机到计算机” 和…

C#面向对象设计模式第九讲:Composite 组合模式(结构型模式)

&#xff08;根据MSDN Webcast相关课程整理&#xff09; 由俄罗斯套娃讲起。娃娃里又包含另一个娃娃&#xff0c;最后那个不包含任何娃娃。 组合模式&#xff0c;采用树型结构来实现普遍存在的对象容器&#xff0c;将本原一对多的复杂的关系&#xff0c;转换成一对一的简单关系…

Docker for Windows

安装条件&#xff1a;必须是 Win10 Pro 或者 Enterprise version. 转载于:https://www.cnblogs.com/qijiage/p/9261258.html

《火影忍者:究级风暴》渲染技术究极解析!

http://www.opengpu.org/forum.php?modviewthread&tid6609 与Takara Tomy公司的《火影忍者》系列游戏不同&#xff0c;初次登陆PS3平台的本作是由日本CyberConnect2制作的对战格斗游戏《火影忍者&#xff1a;终极英雄》系列的最新作。虽然游戏的开发商仍然是CyberConnect2…

工程中新增Properties

如一开始工程中是没有Properties文件夹的&#xff01; 但工程目录文件夹下却有一个Properties&#xff1a; 现在要向这个Properties文件夹中添资源文件。操作步骤&#xff1a; [添加新项]->[资源文件] 再将Resource.resx文件拉到Properties DONE!!!

Django:序列化的几种方法

前言 关于序列化操作&#xff0c;就是将一个可迭代的数据结构&#xff0c;通过便利的方式进行我们所需要的操作。 今天历来归纳一下&#xff0c;Django中的几种不同得分方法&#xff0c;已经Django-restframework提供的方法 创建一个Django的项目 再新建一个app 创建一个模型&a…

c#通过app.manifest使程序 右键 以管理员身份运行

c#通过app.manifest使程序以管理员身份运行 时间:2013-06-27 22:47来源:网络收集本站整理 作者:jtydl 点击: 1175 次微软在Windows Vista开始引入了UAC&#xff08;用户帐户控制&#xff09;新技术&#xff08;点击这儿了解什么是UAC&#xff09;。当程序执行时需要权限的话&am…

25款操作系统全面接触 [2]

Sun Solaris Sun Microsystems公司早期的操作系统版本Sun OS是基于BSD的。在1993年&#xff0c;他们与AT&T合作&#xff0c;转向了UNIX System V&#xff0c;并发布了称作Solaris.System V release 4的系统&#xff0c;这是一个UNIX System V和BSD的整合体。Solaris系统主…

Nuget发布Dll

今天要开始写ViewModel了&#xff0c;写完之后系统里的ViewModel都汇总到我这里&#xff0c;然后由我负责ViewModel的发布跟维护&#xff0c;所以Nuget发布Dll就要熟练啦~ 一&#xff0c;安装工具 1&#xff0c;Nuget Package Manager 2,NuGet.exe 下载地址为&#xff1a;http:…

技巧/诀窍:在ASP.NET中重写URL(转)

技巧/诀窍&#xff1a;在ASP.NET中重写URL 【原文地址】Tip/Trick: Url Rewriting with ASP.NET 【原文发表日期】 Monday, February 26, 2007 9:27 PM 经常有人请我指导应该如何动态地“重写”URL&#xff0c;以在他们的ASP.NETweb应用中发布比较干净的URL端点。这个博客帖…

妙趣横生算法 3:寻找相同元素的指针

实例说明 在已知两个从小到大的有序的数表中寻找出现的相同元素在第一个数表中的指针。 运行结果 实例解析 设两个数表的首元素指针分别为pa和pb,两个数表分别有元素an和bn个。另外&#xff0c;引入两个指针变量ca和cb,分别指向两个数表的当前访问元素。由于两个数表从小到大有…

Nginx 笔记与总结(14)expires 缓存设置

设置缓存&#xff0c;可以提高网站性能。 当网站的部分内容&#xff0c;比如新闻站的图片&#xff0c;一旦发布就不太可能发生更改&#xff0c;此时需要用户在访问一次页面之后&#xff0c;把该页面的图片缓存在用户的浏览器端一段时间&#xff0c;就可以用到 nginx 的 expires…

WP7应用开发笔记(8) IP输入框控件

因为需要在手机上配置IP&#xff0c;我需要一个界面输入IP地址&#xff0c;虽然直接使用TextBox&#xff0c;但是这样不太友好&#xff0c;我希望能够有和Windows网络设置上一样的IP输入框。所以决定写一个自定义控件。 设计控件外观 4个TextBox和3个显示“.”的TextBlock就可以…

C#并发实战Parallel.ForEach使用

前言&#xff1a;最近给客户开发一个伙食费计算系统&#xff0c;大概需要计算2000个人的伙食。需求是按照员工的预定报餐计划对消费记录进行检查&#xff0c;如有未报餐有刷卡或者有报餐没刷卡的要进行一定的金额扣减等一系列规则。一开始我的想法比较简单&#xff0c;直接用一…

[MSDN]ASP.NET MVC2(5)MVCRoute和urls

说明&#xff1a;本内容来自微软的webcast&#xff0c;讲师为苏鹏。视频没有书方便(想看哪页就看哪页)&#xff0c;所以抄录要点和老师语录。 内容介绍 - url和routes介绍 - routes匹配url的工作方式 - 使用routes Router对象mvc运转的核心。 预备知…

一个、说到所有的扩展指标

版权声明&#xff1a;本文博客原创文章&#xff0c;博客&#xff0c;未经同意&#xff0c;不得转载。

网络通信和网络编程

一、软件结构 C/S Client/Server B/S Browser/Server 二、网络通信协议 1、协议分类 UDP 应用&#xff1a; TCP/IP 三、网络编程三要素 1、协议&#xff08;UDP、TCP/IP&#xff09; 2、IP地址 3、端口号 转载于:https://www.cnblogs.com/wmqiang/p/11333351.html

[Android] 输入系统(二)

在上一篇文章的最后&#xff0c;我们发现InputDispatcher是调用了InputChannel->sendMessage把键值发送出去&#xff0c;那么相应的&#xff0c;也有接收键值的地方。接收函数是InputChannel->receiveMessage。 在InputConsumer::consume内找到了receiveMessage&#xff…