Java DOM操作

本文详细介绍了如何使用Java DOM API进行XML文件的读写操作,包括获取Document对象、读取和修改XML内容、同步内存数据到XML文件及删除节点等关键步骤。

获取Docuemnt对象

DocumentBuilderFactory   factory  =  DocumentBuilderFactory.newInstance();//实现了工厂设定模式 和 单例设计模式一样
DocumentBuilder builder  =  factory.newDocumentBuilder();//在factory里面的静态方法返回DocuemntBuilder对象
Document  doc   =  builder.parse("xml路径");//返回document对象

获取根

如:

Element  root  =  doc.getDocumentElement();//getDocumentElement()返回的是xml中的root根
NodeList list  =  root.getElementsByTagName("user");//这个对象是返回一个NodeList对象

 NodeList里面有两个方法

第一个 .是 getLength()//返回的是NodeList里面的标签元素

第二个 .是item(index)//返回第几个标签元素 可以强制转换返回Element对象

for(int i=0;i<list.getLength();i++){//循环标签元素
    Element user=(Element)list.item(i);//第几个元素
    System.out.println(((Element)user.getElementsByTagName("name").item(0)).getTextContent());
}

getTextContent();//意思是取标签里面的内容

setTextContent(String content);//意思是设置标签里面的内容

 在xml里面修改信息要把内存中的数据同步到xml中使用(Transformer)

DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse("E:/JSP/DOM/Source/user.xml");
Element root=doc.getDocumentElement();
NodeList list=root.getElementsByTagName("user");
Element el=(Element)list.item(3);
Element userName=(Element)el.getElementsByTagName("name").item(0);
userName.setTextContent("MyNameIsLiWangJiang");//改变中


//把内容同步到xml文件中  (Transformer)

TransformerFactory Transformerfactory=TransformerFactory.newInstance();//工厂设定模式
Transformer former = Transformerfactory.newTransformer();
Source xmlSource=new DOMSource(doc);//把整个document对象作为原
Result outputTarget= new StreamResult("E:/JSP/DOM/Source/user.xml");//路径作为目标
former.transform(xmlSource, outputTarget);


删除一个节点

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc=builder.parse("E:/JSP/DOM/Source/user.xml");
Element root=doc.getDocumentElement();
root.removeChild(root.getElementsByTagName("user").item(3));//删除一个用户


//同步数据

TransformerFactory factor=TransformerFactory.newInstance();
Transformer former = factor.newTransformer();
Source xmlSource =new DOMSource(doc);//document对象
Result outputTarget = new StreamResult("xml路径");
former.transform(xmlSource, outputTarget);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

达帮主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值