- 1、解析并遍历xml文档
public void parseXml() throws DocumentException {
//获取解析器
SAXReader reader = new SAXReader();
//读取xml文件
InputStream inputStream = MyBeanFactoryXml.class.getClassLoader().getResourceAsStream("bean.xml");
Document document = reader.read(inputStream);
//从根节点开始遍历
Element rootElement = document.getRootElement();
//获取根节点下所有元素
Iterator iterator = rootElement.elementIterator();
//遍历根节点
while (iterator.hasNext()) {
Element element = (Element) iterator.next();
Attribute id = element.attribute("id");
String value = id.getValue();
System.out.println(value);
}
}
-
2、创建xml文档
public void createXml() throws IOException { //创建xml对象 Document document = DocumentHelper.createDocument(); //设置根节点 Element root = DocumentHelper.createElement("beans"); document.setRootElement(root); //设置子节点 root.addElement("bean") .addAttribute("id", "userDao") .addText("this is a userDao"); root.addElement("bean") .addAttribute("id", "userService") .addText("this is a userService"); //输出文档 FileWriter out=new FileWriter("test.xml"); //美化格式 OutputFormat format=OutputFormat.createPrettyPrint(); XMLWriter xmlWriter=new XMLWriter(out,format); xmlWriter.write(document); xmlWriter.close();
}
-
3、修改xml文档并写回
public void modifyXml() throws DocumentException, IOException { //获取解析器 SAXReader reader = new SAXReader(); //读取xml文件 InputStream inputStream = MyBeanFactoryXml.class.getClassLoader().getResourceAsStream("bean.xml"); Document document = reader.read(inputStream); //从根节点开始遍历 Element rootElement = document.getRootElement(); //获取根节点下所有元素 Iterator iterator = rootElement.elementIterator(); //遍历根节点 while (iterator.hasNext()) { Element element = (Element) iterator.next(); Attribute id = element.attribute("id"); String value = id.getValue(); if(value.equals("userDao")){ element.addAttribute("id", "myDao"); String path = MyBeanFactoryXml.class.getClassLoader().getResource("bean.xml").getPath(); FileWriter out=new FileWriter(path); OutputFormat format=OutputFormat.createPrettyPrint(); XMLWriter xmlWriter=new XMLWriter(out,format); xmlWriter.write(document); xmlWriter.close(); } }