搜索
首页后端开发XML/RSS教程xml解析-增删改查操作后将其修改结果保存的代码实例

一、可扩展标记语言xml:Extensible Markup Language 
   1、XML的作用:1)统一数据传输的格式。2)做小型数据库[文件型数据库]。3)做配置文件  .ini   .propertity  .xml  .cfg 
   2、XML文件的基本格式: 
     标签:分为双标签和单标签,双标签的开头和结尾标签名必须一致,大小写一样,/ 开头的是结尾标签,单标签必须在 > 前加上 / 来结尾,单标签中不能放文本。 
     属性:在开始标签中定义一些名值对,值一定是字符串 
   3、XML文件的基本构成: 
     1)在第一行是XML声明    75110c2592a7afab15cf458355098b11 
     2)必须且只能有一对根标签 
     3)标签可以一层一层嵌 

二、写一个简单的xml文档stus.xml然后用Dom进行解析。 
    DOM : Document Object Model 文档对象模型 
    DOM解析的基本思路:将整个XML文件一次性读入内存,将整个XML看做一棵文档树,XML中的每一个标签,属性,文本都看做是树上的一个结点,然后可以对结点进行增删改查的操作。 
   已经编辑好的stus.xml文档 

<?xml version="1.0" encoding="UTF-8"?>
<stus Class="1401" >
	<stu num="01">
		<name>张三</name>
		<age>19</age>
		<sex>男</sex>
	</stu>
	<stu  num="02">
		<name>李四</name>
		<age>20</age>
		<sex>女</sex>
	</stu>
	<stu  num="03">
		<name>王五</name>
		<age>21</age>
		<sex>男</sex>
	</stu>
</stus>

三、开始解析 
    创建解析工厂 

// 得到解析工厂对象  
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
        // 生产一个解析器对象  
        DocumentBuilder builder = factory.newDocumentBuilder();  
        // 开始解析xml文件,得到的解析结果是一个Document对象,Document对象叫做文档树对象  
        Document dom = builder.parse("stus.xml");

    1、增加节点 
    基本思路:首先创建一个新的元素节点,将元素节点追加到根节点后面,设置其节点属性。创建标签,设置标签文本内容,最后将新标签添加到新的元素节点中。 
代码: 

// 创建一个新的元素节点
		Element stu = dom.createElement("stu");
		// 将元素节点追加到根节点后面
		root.appendChild(stu);
		// 设置节点属性
		stu.setAttribute("num", "04");
		// 创建标签
		Element name = dom.createElement("name");
		Element age = dom.createElement("age");
		Element sex = dom.createElement("sex");
		// 设置标签文本内容
		name.setTextContent("赵六");
		age.setTextContent("19");
		sex.setTextContent("女");
		// 把标签添加到新的元素节点stu中
		stu.appendChild(name);
		stu.appendChild(age);
		stu.appendChild(sex);

  2、删除节点 
基本思路:获得要删除的节点,然后得到节点的属性值,与要删除的节点的属性值进行比较,如果该属性值对应的节点存在则移除该节点。 
代码: 

// 获得根节点
		Element root = (Element) dom.getFirstChild();
		// 获得所有stu节点
		NodeList list = dom.getElementsByTagName("stu");
		for (int i = 0; i < list.getLength(); i++) {
			Node node = list.item(i);
			if (node instanceof Element) {
				Element e = (Element) node;
				// 得到节点的属性值,与要删除的结点的属性值进行比较,然后移除该属性值对应的结点
				String num = e.getAttribute("num");
				if (num.equals("02")) {
					root.removeChild(e);
					break;
				}
			}
		}

   3、修改节点 
基本思路:获得要修改的节点,修改其属性值,然后获得该节点下的标签,修改标签中的文本内容。 
代码: 

// 修改节点属性
		for (int j = 0; j < list.getLength(); j++) {
			Node no = list.item(j);
			if (no instanceof Element) {
				Element el = (Element) no;
				String n = el.getAttribute("num");
				if (n.contains("01")) {
					el.setAttribute("num", "05");
					// 修改标签值
					NodeList li = el.getChildNodes();
					for (int x = 0; x < li.getLength(); x++) {
						Node d = li.item(x);
						if (d instanceof Element) {
							Element ee = (Element) d;
							String noN = ee.getNodeName();
							if (noN.equals("name")) {
								ee.setTextContent("小白");
							} else if (noN.equals("age")) {
								ee.setTextContent("11");
							} else if (noN.equals("sex")) {
								ee.setTextContent("男");
							}
						}
					}
				}

4、查找节点 
基本思路:获得所有的节点,用 需要查找的结点的属性值与所有节点进行比较,如果该节点存在,就打印该节点的属性值及其节点下标签的内容。 
代码: 

		for (int j = 0; j < list.getLength(); j++) {
			Node no = list.item(j);
			if (no instanceof Element) {
				Element el = (Element) no;
				String n = el.getAttribute("num");
				//查找节点,显示其属性值及标签内容
				if(n.equals("03")){
					System.out.println(no.getNodeName()+"\t"+n+no.getTextContent());
				}
			}
		}

4、保存修改后的xml文档 
基本思路:先将内存中的Document对象写到xml文件中,然后将整个Document对象作为要写入xml文件的数据源,最后将数据源写入目标文件。 
代码: 

// 将内存中的Document对象写到xml文件中
		TransformerFactory tf = TransformerFactory.newInstance();
		Transformer former = tf.newTransformer();
		former.setParameter("version", "1.0");
		former.setParameter("encoding", "GBK");
		// 将整个Document对象作为要写入xml文件的数据源
		DOMSource xmlSource = new DOMSource(dom);
		// 要写入的目标文件
		StreamResult outputTarget = new 
				StreamResult(new File("F:\\stus2.xml"));
		former.transform(xmlSource, outputTarget);

以上是xml解析-增删改查操作后将其修改结果保存的代码实例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
掌握良好的XML:数据交换的最佳实践掌握良好的XML:数据交换的最佳实践May 14, 2025 am 12:05 AM

良好形式的XMliscrucialfordAtaExchangeBecapeparsingSiturscrectparsingandSundStandingAcrossystem.1)startwithAdeClarationLike.2)确保everyveryopentingtaghasaclopingtaghasaclosingtagosingtagandelementsareproproproproproperlynested.3)

XML:它仍然使用吗?XML:它仍然使用吗?May 13, 2025 pm 03:13 PM

Xmlisstillusedduetoitsstructusednature,人类可读性,以及范围的addionindererpriseEnvormentments.1)itfacilitatesdataexchangeInsectInsectorlikeFinance(swift)andHealthCare(hl7)和hl7)

RSS文档的解剖结构:结构和元素RSS文档的解剖结构:结构和元素May 10, 2025 am 12:23 AM

RSS文档的结构包括三个主要元素:1.:根元素,定义RSS版本;2.:包含频道信息,如标题、链接、描述;3.:代表具体的内容条目,包含标题、链接、描述等。

了解RSS文档:综合指南了解RSS文档:综合指南May 09, 2025 am 12:15 AM

RSS文档是一种简便的订阅机制,通过XML文件发布内容更新。1.RSS文档结构由和元素组成,包含多个。2.使用RSS阅读器订阅频道,并通过解析XML提取信息。3.高级用法包括使用feedparser库进行过滤和排序。4.常见错误包括XML解析和编码问题,调试时需验证XML格式和编码。5.性能优化建议包括缓存RSS文档和异步解析。

RSS,XML和现代网络:内容联合深度潜水RSS,XML和现代网络:内容联合深度潜水May 08, 2025 am 12:14 AM

RSS和XML在现代Web中依然重要。1.RSS用于发布和分发内容,用户可通过RSS阅读器订阅并获取更新。2.XML作为标记语言,支持数据存储和交换,RSS文件基于XML。

基础知识超越:XML启用的高级RSS功能基础知识超越:XML启用的高级RSS功能May 07, 2025 am 12:12 AM

RSS可以实现多媒体内容嵌入、条件订阅、以及性能和安全性优化。1)通过标签嵌入多媒体内容,如音频和视频。2)使用XML命名空间实现条件订阅,允许订阅者根据特定条件筛选内容。3)通过CDATA节和XMLSchema优化RSSFeed的性能和安全性,确保稳定性和符合标准。

解码RSS:Web开发人员的XML底漆解码RSS:Web开发人员的XML底漆May 06, 2025 am 12:05 AM

RSS是一种基于XML的格式,用于发布常更新的数据。作为Web开发者,理解RSS能提升内容聚合和自动化更新能力。通过学习RSS结构、解析和生成方法,你将能自信地处理RSSfeeds,优化Web开发技能。

JSON与XML:为什么RSS选择XMLJSON与XML:为什么RSS选择XMLMay 05, 2025 am 12:01 AM

RSS选择XML而不是JSON是因为:1)XML的结构化和验证能力优于JSON,适合RSS复杂数据结构的需求;2)XML当时有广泛的工具支持;3)RSS早期版本基于XML,已成标准。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器