Dom解析xml

DomParseTest.java

package cn.pinnsvin;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
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.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

//Dom解析Xml
public class DomParseTest {

    @Test
    public void domParse() throws Exception{
        //获取DocumentBuilderFactory
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        //获取DocumentBuilder
        DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder();
        //通过documentBuilder解析xml文档获得Document对象
        Document document = documentBuilder.parse("book.xml");
        //通过元素的名字可以找到元素的集合
        NodeList nodeList = document.getElementsByTagName("书名");
        //找到第二个元素
        Node node = nodeList.item(1);
        //读出对应节点的文本内容
        String content = node.getTextContent();
        System.out.println(content);
    }

    @Test
    public void domModifyxml() throws ParserConfigurationException, SAXException, IOException, TransformerException{
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document document = documentBuilder.parse("book.xml");
        NodeList nodeList = document.getElementsByTagName("价格");
        Node node = nodeList.item(1);
        node.setTextContent("99.00");

        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();

        Source source = new DOMSource(document);
        Result result = new StreamResult("book.xml");
        transformer.transform(source, result);
    }
}

book.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><书架>
    <>
        <书名>java深入浅出</书名>
        <作者>你猜 </作者>
        <价格>20.50</价格>
    </>
    <>
        <书名>c深入浅出</书名>
        <作者>haha </作者>
        <价格>99.00</价格>
    </>
</书架>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值