java中float,java jdom进行xml的增删改差_java使用DOM对XML文档进行增删改查操作实例代码

 2023-09-22 阅读 19 评论 0

摘要:本文研究的主要是java使用DOM对XML文档进行增删改查操作的相关代码,具体实例如下所示。java中float?源代码:package com.zc.homeWork18;import java.io.File;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;impor

本文研究的主要是java使用DOM对XML文档进行增删改查操作的相关代码,具体实例如下所示。

java中float?源代码:

package com.zc.homeWork18;

import java.io.File;

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 javax.xml.xpath.XPath;

import javax.xml.xpath.XPathConstants;

import javax.xml.xpath.XPathExpressionException;

import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

public class XMLWriter {

private static String xmlPath = "src\\com\\zc\\homeWork18\\MyXml.xml";

public static void getFamilyMemebers() {

/*

* 创建文件工厂实例

*/

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

// 如果创建的解析器在解析XML文档时必须删除元素内容中的空格,则为true,否则为false

dbf.setIgnoringElementContentWhitespace(true);

try {

/*

* 创建文件对象

*/

DocumentBuilder db = dbf.newDocumentBuilder();// 创建解析器,解析XML文档

Document doc = db.parse(xmlPath); // 使用dom解析xml文件

/*

* 历遍列表,进行XML文件的数据提取

*/

// 根据节点名称来获取所有相关的节点

NodeList sonlist = doc.getElementsByTagName("son");

for (int i = 0; i < sonlist.getLength(); i++) // 循环处理对象

{

// 节点属性的处理

Element son = (Element) sonlist.item(i);

// 循环节点son内的所有子节点

for (Node node = son.getFirstChild(); node != null; node = node

.getNextSibling()) {

// 判断是否为元素节点

if (node.getNodeType() == Node.ELEMENT_NODE) {

String name = node.getNodeName();

String value = node.getFirstChild().getNodeValue();

System.out.println(name + " : " + value);

}

}

}

} catch (Exception e) {

System.out.println(e.getMessage());

}

}

// 修改

public static void modifySon() {

// 创建文件工厂实例

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

dbf.setIgnoringElementContentWhitespace(true);

try {

// 从XML文档中获取DOM文档实例

DocumentBuilder db = dbf.newDocumentBuilder();

// 获取Document对象

Document xmldoc = db.parse(xmlPath);

// 获取根节点

Element root = xmldoc.getDocumentElement();

// 定位id为001的节点

Element per = (Element) selectSingleNode("/father/son[@id='001']",root);

// 将age节点的内容更改为28

per.getElementsByTagName("age").item(0).setTextContent("28");

// 保存

TransformerFactory factory = TransformerFactory.newInstance();

Transformer former = factory.newTransformer();

former.transform(new DOMSource(xmldoc),new StreamResult(new File(

xmlPath)));

} catch (Exception e) {

System.out.println(e.getMessage());

}

}

// 获取目标节点,进行删除,最后保存

public static void discardSon() {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

dbf.setIgnoringElementContentWhitespace(true);

try {

DocumentBuilder db = dbf.newDocumentBuilder();

Document xmldoc = db.parse(xmlPath);

// 获取根节点

Element root = xmldoc.getDocumentElement();

// 定位根节点中的id=002的节点

Element son = (Element) selectSingleNode("/father/son[@id='002']",root);

// 删除该节点

root.removeChild(son);

// 保存

TransformerFactory factory = TransformerFactory.newInstance();

Transformer former = factory.newTransformer();

former.transform(new DOMSource(xmldoc),new StreamResult(new File(

xmlPath)));

} catch (Exception e) {

System.out.println(e.getMessage());

}

}

// 新增节点

public static void createSon() {

// 创建文件工厂实例

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

dbf.setIgnoringElementContentWhitespace(false);

try {

DocumentBuilder db = dbf.newDocumentBuilder();

// 创建Document对象

Document xmldoc = db.parse(xmlPath);

// 获取根节点

Element root = xmldoc.getDocumentElement();

// 创建节点son,设置对应的id为004

Element son = xmldoc.createElement("son");

son.setAttribute("id","004");

// 创建节点name

Element name = xmldoc.createElement("name");

name.setTextContent("小儿子");

son.appendChild(name);

// 创建节点age

Element age = xmldoc.createElement("age");

age.setTextContent("0");

son.appendChild(age);

// 把son添加到根节点中

root.appendChild(son);

// 保存

TransformerFactory factory = TransformerFactory.newInstance();

Transformer former = factory.newTransformer();

former.transform(new DOMSource(xmldoc),new StreamResult(new File(

xmlPath)));

} catch (Exception e) {

System.out.println(e.getMessage());

}

}

// 修改节点信息

public static Node selectSingleNode(String express,Element source) {

Node result = null;

//创建XPath工厂

XPathFactory xpathFactory = XPathFactory.newInstance();

//创建XPath对象

XPath xpath = xpathFactory.newXPath();

try {

result = (Node) xpath.evaluate(express,source,XPathConstants.NODE);

System.out.println(result);

} catch (XPathExpressionException e) {

System.out.println(e.getMessage());

}

return result;

}

// 打印

public static void main(String[] args) {

getFamilyMemebers();

System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

modifySon();

System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

System.out.println("修改数据");

getFamilyMemebers();

System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

discardSon();

System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

System.out.println("删除数据");

getFamilyMemebers();

System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

createSon();

System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

System.out.println("添加数据");

getFamilyMemebers();

}

}

XML文件

老大

20

老二

18

老三

13

总结

以上就是本文关于java使用DOM对XML文档进行增删改查操作实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/82999.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息