pom依赖:
<!--引入dom4j--> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency>
解析xml:
/** * 读取并修改xml文件 */ public boolean modifyXmlElement(String filePath, String channelId, String bookId) { try { // 创建SAXReader对象,关联xml SAXReader sr = new SAXReader(); Document document = sr.read(filePath); // 获取根元素,遍历application标签下的子标签 Element root = document.getRootElement(); Iterator iter = root.element("application").elementIterator(); while (iter.hasNext()) { Element element = (Element) iter.next(); // 读取xml属性 String elementValue = element.attribute(0).getValue(); // 修改xml属性 if ("DK_DIST_CHANNEL".equals(elementValue) || "UMENG_CHANNEL".equals(elementValue)) { Attribute att = element.attribute(1); att.setValue(channelId); } if (StringUtils.isNotBlank(bookId) && "INNER_BOOK_ID".equals(elementValue)) { Attribute att = element.attribute(1); att.setValue(bookId); } } saveDocument(document, new File(filePath)); } catch (Exception e) { ScribeLogger.error(logEvent, "modify xml file, occur exception, %s", e); return false; } return true; } /** * 保存对xml文件的修改 */ public void saveDocument(Document document, File xmlFile) throws IOException { ScribeLogger.info(logEvent, "save document, xml file path, %s", xmlFile); Writer outWrite = new OutputStreamWriter(new FileOutputStream(xmlFile)); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); XMLWriter writer = new XMLWriter(outWrite, format); writer.write(document); writer.flush(); writer.close(); }