java dom操作xml_Java用DOM操作xml

JAXP DOM方式解析XML文档实例

增删改查

package jiexi;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

//JAXP DOM方式解析XML文档实例

public class JaxpCRUD {

public static void main(String[] args) throws Exception {

//1,得到解析器DocumentBuilder

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();

DocumentBuilder db=dbf.newDocumentBuilder();

//2,得到代表整个xml文档的Document对象

Document document=db.parse("src/book.xml");

test1(document);

}

//1、得到具体节点的内容

public static void test1(Document document){//得到第二本书的售价

NodeList list=document.getElementsByTagName("售价");

int length=list.getLength();//获得元素节点的个数

System.out.println(length);

Node node=list.item(1);//角标从0开始

System.out.println(node.getTextContent());

}

//2、遍历所有元素节点

public static void test2(Node node){

//1,判断node是否是元素节点,如果是,打印该节点

if(node.getNodeType()==Node.ELEMENT_NODE ){//判断是否是元素节点

System.out.println(node.getNodeName());

}

//2,判断是否有孩子节点

NodeList children=node.getChildNodes();

for(int i=0;i

Node n=children.item(i);

test2(n);//3,递归调用

}

}

//3、修改某个元素节点的主题内容

//将第一本书的售价改为49元

public static void test3(Document document)throws Exception{

//1,找到第一本书的售价节点

NodeList list=document.getElementsByTagName("售价");

Node node=list.item(0);

//2,将主题内容改为49元

node.setTextContent("49元");

//3,更新设置

Transformer ts = TransformerFactory.newInstance().newTransformer();

ts.transform(new DOMSource(document), new StreamResult("src/book.xml"));

}

//4、向指定元素节点中增加子元素节点

//向第一本书中添加节点39优惠价>

public static void test4(Document document)throws Exception{

//1,找到增加节点处的父级元素

Node node=document.getElementsByTagName("书").item(0);

//2,创建节点,并添加主体内容

Element ele=document.createElement("优惠价");

ele.setTextContent("39元");

//3,节点添加到父级元素中

node.appendChild(ele);

//4,更新设置

Transformer ts=TransformerFactory.newInstance().newTransformer();

ts.transform(new DOMSource(document), new StreamResult("src/book.xml"));

}

//5、向指定元素节点上增加同级元素节点

//向第二本书中添加优惠价

public static void test5(Document document)throws Exception{

//1,找到添加元素的兄弟节点

Node node=document.getElementsByTagName("售价").item(1);

//2,创建节点,并添加内容

Element ele=document.createElement("优惠价");

ele.setTextContent("18元");

//3,节点添加

node.getParentNode().appendChild(ele);

//4,更新设置

Transformer ts=TransformerFactory.newInstance().newTransformer();

ts.transform(new DOMSource(document), new StreamResult("src/book.xml"));

}

//6、删除指定元素节点

//删除优惠价

public static void test6(Document document)throws Exception{

//1,获得优惠价节点

Node node=document.getElementsByTagName("优惠价").item(0);

//2,删除节点

node.getParentNode().removeChild(node);

//3,更新设置

Transformer ts=TransformerFactory.newInstance().newTransformer();

ts.transform(new DOMSource(document), new StreamResult("src/book.xml"));

}

//7、操作XML文件属性

public static void test7(Document document){

//得到第一本书的属性

Node node=document.getElementsByTagName("书").item(0);

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

Element ele=(Element)node;

System.out.println(ele.getAttribute("出版社"));

}

}

//设置第二本书的属性值为新华

public static void test8(Document document)throws Exception{

Node node=document.getElementsByTagName("书").item(1);

Element ele=(Element)node;

ele.setAttribute("出版社", "新华");

TransformerFactory tf=TransformerFactory.newInstance();

Transformer ts=tf.newTransformer();

ts.transform(new DOMSource(document), new StreamResult("src/book.xml"));

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值