增删改
另一个博客,已经把dome4j解析xml文件说了一遍,现在我把xml怎么实现增删改跟大家说一下
可以接着用上一个xml文件
首先还是要写一个xml文件
<?xml version="1.0" encoding="UTF-8"?>
<phoneInfo>
<brand name="小米">
<type name="小米1"/>
<type name="小米2"/>
<type name="小米3"/>
</brand>
<brand name="华为">
<type name="华为1"/>
<type name="华为2"/>
<type name="华为3"/>
</brand>
<brand name="苹果">
<type name="苹果1"/>
<type name="苹果2"/>
<type name="苹果3"/>
</brand>
这就是一个简单的xml文件
然后大家一定要记得导一个炸包
增加
首先是增加,我们先添加一个魅族手机
package cn.shs.jdbc;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class AddTest {
public static void main(String[] args) {
SAXReader saxReader = new SAXReader();
try {
Document document=saxReader.read("src/info.xml");
Element rootElement=document.getRootElement();
Element brand=rootElement.addElement("brand");
brand.addAttribute("name","魅族");
Element type=brand.addElement("type");
type.addAttribute("name","16 pro");
OutputStream os =new FileOutputStream(new File("src/info.xml"));
XMLWriter xmlWriter=new XMLWriter(os);
xmlWriter.write(rootElement);
xmlWriter.flush();
}catch (Exception e){
e.printStackTrace();
}
}
}
然后运行一下,去xml文件里去看一下有没有成功
下面是一个运行结果
可以看出多了,一个魅族手机,证明添加成功
修改
接下来是修改,我们把16 pro修改成S16
package cn.shs.jdbc;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;
public class UpdateTest {
public static void main(String[] args) {
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read("src/info.xml");
Element rootElement=document.getRootElement();
Iterator it=rootElement.elementIterator();
while(it.hasNext()){
Element element=(Element) it.next();
System.out.println(element.attributeValue("name"));
if(element.attributeValue("name").equals("魅族")){
Iterator iterator= element.elementIterator();
while (iterator.hasNext()){
Element type=(Element)iterator.next();
if(type.attributeValue("name").equals("16 pro")){
type.addAttribute("name","S16");
}
}
}
}
XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("src/info.xml")));
xmlWriter.write(document);
xmlWriter.flush();
}catch (Exception e){
e.printStackTrace();
}
}
}
如果不出意外的我们就修改完了,然后去xml文件里面去看一眼,修改成没成功
我们可以看出,已经修改成功
删除
最后呢是删除
package cn.shs.jdbc;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import javax.sql.rowset.spi.XmlReader;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;
public class DeleteTest {
public static void main(String[] args) {
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read("src/info.xml");
Element rootElement=document.getRootElement();
Iterator iterator=rootElement.elementIterator();
while (iterator.hasNext()){
Element brand=(Element) iterator.next();
if (brand.attributeValue("name").equals("魅族")){}
brand.getParent().remove(brand);
}
XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("src/info.xml")));
xmlWriter.write(document);
xmlWriter.flush();
}catch (Exception e){
e.printStackTrace();
}
}
}
记得把xml文件复制一下,里面小心全没了,这个我就不加运行结果了
如果有一起的加我微信a2927164954 qq就是把a去掉
感谢观看