Flask接口签名sign原理与实例代码浅析
328
2022-12-06
Java使用dom4j实现对xml简单的增删改查操作示例
本文实例讲述了java使用dom4j实现对xml简单的增删改查操作。分享给大家供大家参考,具体如下:
xml留了个结课作业: 后台用xml文件作为存储做个迷你系统实现增删改查的功能, 在此记录一下
先得引入dom4j的jar包放在项目的WEB-INF-->lib目录下
先新建一个读取器, 读取你想操作的xml文件(我这里写的绝对路径)
//读取XML文件,获得document对象
SAXReader reader = new SAXReader();
Document document = null;
try {
document = reader.read(new File("E:\\eclipse\\XmlTest\\src\\xml\\user.xml"));
} catch (DocumentException e) {
e.printStackTrace();
}
上边的try catch不加的话eclipse会报错, 因为涉及到文件操作, document不初始为null化也会报错
//获得根节点的属性对象
Element rootElem = document.getRootElement();
基本语句:
//以下操作以root为例,所有节点都可以并非只有根节点,下面的孩子指第一代孩子
//返回root节点的标签名为"user"的孩子节点,如果有多个只返回第一个
Element contactElem = rootElem.element("user");
//获取节点标签之间的内容
String text=contactElem .getText();
//返回所有的孩子节点,即一个List
List
//返回该节点的属性,返回的是一个对象
Attribute rootAttr = rootElem.attribute("id");
//更改属性值
rootAttr.setValue("更改后的id值");
//给元素新增属性和属性值
rootElem.addAttribute("name", "新增成功!");
//删除节点的某属性
rootElem.remove(rootAttr);
//节点和节点的属性都可以获取名字(标签名/属性名)
String idName = rootAttr.getName();
String tagName = rootElem.getName();
//获取属性的属性值
String value=rootAttr.getValue();
所有涉及到修改增加的操作, 修改完dom对象后都要写回文件:
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File(这里填你的xml路径)), format);
writer.write(document);
writer.close();
以下都省略文件的读取和document / rootElem的获取(上面提到过)
查
我这里有个用户表如下, 做后端的账号密码存储
//user, password是前台传来的账号密码
boolean RightPassword=false;
List
for (Element ele : eles)
{
if(ele.element("account").getText().equals(user))
{
if(ele.element("password").getText().equals(password))
RightPassword=true;
return;
}
}
增
这里拿另一个xml举例, 该xml存储文章
示例增加一个文章,大家可以做的更复杂一些
Element newArticle=rootElem.addElement("article");
newArticle.setText("文章内容");
//以下的输出文件和上面提到的一样
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File("你的xml路径")), format);
writer.write(document);
writer.close();
删
下面示例按标签内容删除一个节点
(应该按某个属性值如id删除,因为上例追求简单没设属性)
List
for (Element ele : eles)
{
if(ele.getText().equals("按照内容删除"))
{
rootElem.remove(ele);
}
}
//以下的输出文件和上面提到的一样
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File("你的xml路径")), format);
writer.write(document);
writer.close();
改
和上面的删除只有一句不同, 找到节点后想修改什么就 set什么就可以了
List
for (Element ele : eles)
{
if(ele.getText().equals("按照内容修改"))
{
ele.setText("修改后的内容");
}
}
//以下的输出文件和上面提到的一样
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File("你的xml路径")), format);
writer.write(document);
writer.close();
PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:
在线XML/jsON互相转换工具:
http://tools.jb51.net/code/xmljson
在线格式化XML/在线压缩XML:
http://tools.jb51.net/code/xmlformat
XML在线压缩/格式化工具:
http://tools.jb51.net/code/xml_format_compress
XML代码在线格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~