关于利用java修改xml里的数据

根据上一篇文章利用java读取xml的数据
https://blog.csdn.net/qq_41477675/article/details/81809976

此处新添加关于修改xml数据的代码
dtd与xml文件不变,只是变了java文件。

把读取document的过程封装成了方法test1,而修改的封装成了test2

过程如下:

package xml;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class xmjava {
public static void main(String[] args) throws ParserConfigurationException, Exception, Exception
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//创建工厂解析器
    DocumentBuilder db = dbf.newDocumentBuilder();
//利用工厂创造一个解析器
Document doc = db.parse("src\\xml\\xmlxx.xml");
//通过解析器获得document对象
test1(doc);
test2(doc);
test1(doc);
}
static void test1(Document doc)
{
NodeList list = doc.getElementsByTagName("age");
//获得节点名字获取节点内容
Node name=list.item(1);
//只能用item获得序号节点
System.out.println(name.getTextContent());
//取得节点里的内容~
}
static void test2(Document doc) throws Exception
{   //1.获取目标元素节点
NodeList list = doc.getElementsByTagName("age");
//获取该元素节点下的子节点
Node item = list.item(1);
//修改某个子节点里的数据
item.setTextContent("30");
//创建传送器并从内存传送到文档里去
Transformer ts = TransformerFactory.newInstance().newTransformer();
ts.transform(new DOMSource(doc), new StreamResult("src\\\\xml\\\\xmlxx.xml"));
}
}

之后运行此代码可以惊奇的发现xml里的数据发生变化了哟。。
你也可以现场修改xml的数据,运行之后立马就可以看到变化。
这样在你硬盘上面存储的数据就和内存里的同步啦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值