博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查
阅读量:5143 次
发布时间:2019-06-13

本文共 4517 字,大约阅读时间需要 15 分钟。

一、XML和String互转:

  使用dom4j程式变得很简单

//字符串转XMLString xmlStr = \"......\";    Document document = DocumentHelper.parseText(xmlStr);    // XML转字符串    Document document = ...;    String text = document.asXML();    //这里的XML DOCUMENT为org.dom4j.Document

二、读取XML文档节点:

package vastsum;import java.io.File;import java.util.Iterator;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.SAXReader;/** * 读取下xml文档,获得document对象。 */class exmple {    public static void main(String[] args) throws DocumentException    {        SAXReader reader = new SAXReader();        Document document = reader.read(new File("./src/contact.xml"));                /**         * 节点对象的操作方法         */                //获取文档根节点        Element root = document.getRootElement();        //输出根标签的名字        System.out.println(root.getName());                //获取根节点下面的所有子节点(不包过子节点的子节点)        List
list = root.elements() ; //遍历List的方法 for (Element e:list){ System.out.println(e.getName()); } //获得指定节点下面的子节点 Element contactElem = root.element("contact");//首先要知道自己要操作的节点。 List
contactList = contactElem.elements(); for (Element e:contactList){ System.out.println(e.getName()); } //调用下面获取子节点的递归函数。 getChildNodes(root); //获得当前标签下指定名称的第一个子标签 Element conElem = root.element("contact"); System.out.println(conElem.getName()); //获得更深层次的标签(一层一层的获取) Element nameElem = root.element("contact").element("name"); System.out.println(nameElem.getName()); } //递归查询节点函数,输出节点名称 private static void getChildNodes(Element elem){ System.out.println(elem.getName()); Iterator
it = elem.nodeIterator(); while (it.hasNext()){ Node node = it.next(); if (node instanceof Element){ Element e1 = (Element)node; getChildNodes(e1); } } } }

三、对XML节点属性进行增删改查

package vastsum;import java.io.File;import java.io.FileWriter;import java.util.Iterator;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;import org.junit.Test;/** * 使用dom4j操作xml * 对xml属性操作 * 操作xml文件为contact.xml * */public class attrDemo{    @Test    public void exmple() throws Exception{        //读取XML文件,获得document对象        SAXReader reader = new SAXReader();        Document document = reader.read(new File("./src/contact.xml"));                //获得某个节点的属性对象        Element rootElem = document.getRootElement();        //获取根节点属性对象        Attribute rootAttr = rootElem.attribute("id");                    //获取指定节点属性对象        Element contactElem = rootElem.element("contact");        Attribute contactAttr = contactElem.attribute("id");        //获取指定对象的属性名        System.out.println(rootAttr.getName());        System.out.println(contactAttr.getName());                //获取指定对象的属性值        System.out.println(contactAttr.getValue());        System.out.println(rootAttr.getValue());                //遍历某个节点的所有属性        for (Iterator it = contactElem.attributeIterator();it.hasNext();){            Attribute  conAttr= (Attribute)it.next();            String conTxt = conAttr.getValue();            String conAttrName = conAttr.getName();            System.out.println(conAttrName+" = "+conTxt);        }        //设置某节点的属性和值        contactElem.addAttribute("name", "zhangsan");                //设置(更改)某属性的值        Attribute nameAttr = contactElem.attribute("name");        nameAttr.setValue("lisi");                //删除某节点的指定属性        contactElem.remove(nameAttr);        //将某节点的属性和值写入xml文档中        XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"));        writer.write(document);        writer.close();                //如果文档中有中文需要设置字符编码,用如下语句:        OutputFormat format = OutputFormat.createPrettyPrint();        format.setEncoding("GBK");        XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"),format);    }}

下面介绍下dom4j:

  dom4j是Java的XML API,用来读写XML文件的。目前有很多场景中使用dom4j来读写xml的。

  要使用dom4j开发,需要下载导入dom4j相应的jar文件。官网下载:http://www.dom4j.org/dom4j-1.6.1/

  下载解压之后如图所示:

  我们只需要把dom4j-1.6.1.jar文件构建到我们开发项目中就可以了。

  在项目中创建一个lib文件,把dom4j-1.6.1.jar文件拷贝到lib中,然后右键dom4j-1.6.1jar文件。如图所示:

  点击Add to Bulid Path即可构建到项目中去了。导入成功如图所示:

 

转载于:https://www.cnblogs.com/goloving/p/8366235.html

你可能感兴趣的文章
Java学习 · 初识 面向对象深入一
查看>>
源代码如何管理
查看>>
vue怎么将一个组件引入另一个组件?
查看>>
Razor项目所感(上)
查看>>
android程序完全退出步骤
查看>>
bzoj1040: [ZJOI2008]骑士
查看>>
LeetCode 74. Search a 2D Matrix(搜索二维矩阵)
查看>>
利用SignalR来同步更新Winfrom
查看>>
反射机制
查看>>
CocoaPod
查看>>
css3实现漂亮的按钮链接
查看>>
[python基础] python 2与python 3的区别,一个关于对象的未知的坑
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
深度剖析post和get的区别
查看>>
云的世界
查看>>
初识DetNet:确定性网络的前世今生
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
MATLAB基础入门笔记
查看>>
【UVA】434-Matty's Blocks
查看>>
五、宽度优先搜索(BFS)
查看>>