JAVA利用DOM操作XML文件

XML文件如下

<?xml version="1.0" encoding="UTF-8" standalone="no"?><书架>
<书>
<书名 name="xxx">爱上java</书名>
<作者>lad</作者>
<售价>562元</售价>
<售价>55</售价>
<售价>562元</售价>
</书>
<书>
<书名>java艺术</书名>
<作者>lad</作者>
<售价>88</售价>
</书>
</书架>

1.读取其中的节点值并打印输出

@Test 
public void test2() throws Exception{

//1创建工厂
DocumentBuilderFactory df=DocumentBuilderFactory.newInstance();
//2生产bulider
DocumentBuilder db=df.newDocumentBuilder();
//3得到docment
Document d=db.parse("src/xmlDemo/Book.xml");
//读取文档中的某个元素的值
NodeList nodelist=d.getElementsByTagName("书名");
Node node=nodelist.item(1);
String s=node.getTextContent();
System.out.println(s);

}

2.从根节点读取

@Test 
public void test2() throws Exception{
DocumentBuilderFactory dbfactroy=DocumentBuilderFactory.newInstance();
DocumentBuilder dbulider=dbfactroy.newDocumentBuilder();
Document doument=dbulider.parse("src/xmlDemo/Book.xml");
//得到根节点
Node root=doument.getElementsByTagName("书架").item(0);
//NodeList list=doument.getElementsByTagName("书");
print(root);


}
private void print(Node root) {
if(root instanceof Element)//若是element则进行输出
System.out.println(root.getNodeName());

NodeList list=root.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
Node node=list.item(i);
print(node);
}

}

3、往Xml文件中插入节点

//往xml里添加节点
@Test
public void teat4() throws Exception{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse("src/xmlDemo/Book.xml");
//创建节点
Element element=document.createElement("售价");
element.setTextContent("562元");

//得到参考节点
Element ec=(Element)document.getElementsByTagName("售价").item(0);

//往挂载节点书籍上链接
Element e=(Element)document.getElementsByTagName("书").item(0);
//往参考节点之前插入
//e.appendChild(element);
e.insertBefore(element, ec);
//从内存写入xml文档
TransformerFactory factory2=TransformerFactory.newInstance();
Transformer transformer=factory2.newTransformer();
transformer.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/xmlDemo/Book.xml")));


}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值