为了账号安全,请及时绑定邮箱和手机立即绑定

DOM解析器解析增删改学习笔记

标签:
Java

import java.io.File;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;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.Element;import org.w3c.dom.NodeList;public class Demo2 {    //dom是否将空白字符当作一个有效的元素对待    public static void main(String[] args) throws Exception{        Document document = getDocument();        Element rootElement = document.getDocumentElement();        NodeList nodeList = rootElement.getChildNodes();        System.out.println("共有" + nodeList.getLength()+"个直接元素");    }    @Test    public void create() throws Exception{        Document document = getDocument();        Element newCarElement = document.createElement("汽车");        newCarElement.setTextContent("我的汽车");        Element rootElement = document.getDocumentElement();        //rootElement.appendChild(newCarElement);        rootElement.insertBefore(                newCarElement,                rootElement.getElementsByTagName("汽车").item(1));        write2xml(document);    }    @Test    public void update() throws Exception{        Document document = getDocument();        Element secondCarElement = (Element) document.getElementsByTagName("汽车").item(1);        secondCarElement.getElementsByTagName("产地").item(0).setTextContent("深圳");        secondCarElement.getElementsByTagName("车牌").item(0).getAttributes().getNamedItem("出产时间").setTextContent("2012年");        write2xml(document);    }    @Test    public void delete() throws Exception{        Document document = getDocument();        Element rootElement = document.getDocumentElement();        Element secondCarElement = (Element) rootElement.getElementsByTagName("汽车").item(1);        rootElement.removeChild(secondCarElement);        write2xml(document);    }    private void write2xml(Document document)throws Exception {        //将内存中的document对象写到外存的xml文件        TransformerFactory tf = TransformerFactory.newInstance();        Transformer transformer = tf.newTransformer();        //源        Source source = new DOMSource(document);        //目        Result result = new StreamResult(new File("src/xml/dom/car.xml"));        transformer.transform(source,result);    }    private static Document getDocument() throws Exception {        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();        //设置dom解析器将空白字符过滤        factory.setIgnoringElementContentWhitespace(true);        DocumentBuilder domParser = factory.newDocumentBuilder();        Document document = domParser.parse(new File("src/xml/dom/car.xml"));        return document;    }}

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
39
获赞与收藏
243

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消