public synchronized static List<BlogXMLBean> ReadBlogList(){ List<BlogXMLBean> list = new ArrayList<BlogXMLBean>(); try { String filepath = ""; if ("".equals(SystemVariable.APP_PATH)) { filepath = SystemVariable.APP_PATH + "/WebRoot/WEB-INF/ClickReply/blog.xml"; } else { filepath = SystemVariable.APP_PATH + "\\WEB-INF\\ClickReply\\blog.xml"; } File f = new File(filepath); SAXReader reader = new SAXReader(); Document doc = reader.read(f); Element root = doc.getRootElement(); Element listElement = root.element("blogXMLBeanList"); Element foo; for (Iterator i = listElement.elementIterator("blogXMLBean"); i.hasNext();){ foo = (Element) i.next(); BlogXMLBean bean = new BlogXMLBean(); bean.setInitURL(foo.elementText("initURL")); bean.setIsFrame(Boolean.valueOf(foo.elementText("isFrame"))); bean.setIsJavaScript(Boolean.valueOf(foo.elementText("isJavaScript"))); bean.setClickRegex(foo.elementText("clickRegex")); bean.setClickReplyRegex(foo.elementText("clickReplyRegex")); bean.setIsCombination(Boolean.valueOf(foo.elementText("isCombination"))); bean.setReplyRegex(foo.elementText("replyRegex")); bean.setSiteName(foo.elementText("siteName")); list.add(bean); } } catch (Exception e) { e.printStackTrace(); } return list; }
public synchronized static void WriteNewsIndexConfig(List<NewsXMLBean> newsList){ try{ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.newDocument(); Element root = doc.createElement("NewsXMLBeanRoot"); for(int i=0;i<newsList.size();i++){ NewsXMLBean newsXMLBean = newsList.get(i); Element bean = doc.createElement("NewsXMLBean"); Element siteName = doc.createElement("siteName"); siteName.setTextContent(newsXMLBean.getSiteName()+""); bean.appendChild(siteName); Element initURL = doc.createElement("initURL"); initURL.setTextContent(newsXMLBean.getInitURL()+""); bean.appendChild(initURL); Element fileName = doc.createElement("fileName"); fileName.setTextContent(newsXMLBean.getFileName()+""); bean.appendChild(fileName); root.appendChild(bean); } doc.appendChild(root); String filename = ""; if ("".equals(SystemVariable.APP_PATH)) { filename = SystemVariable.APP_PATH + "/WebRoot/WEB-INF/ClickReply/newsIndexConfig.xml"; } else { filename = SystemVariable.APP_PATH + "\\WEB-INF\\ClickReply\\newsIndexConfig.xml"; } // 下面的方法是写xml到.xml的文档 TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer();// 此实例可以用于处理来自不同源的 // XML,并将转换输出写入各种接收器。 DOMSource source = new DOMSource(doc);// 创建带有 DOM 节点的新输入源 transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");// 设置转换中实际的输出属性 transformer.setOutputProperty(OutputKeys.INDENT, "yes");// 设置转换中实际的输出属性 OutputStreamWriter pw = new OutputStreamWriter(new FileOutputStream(filename), "utf-8"); StreamResult result = new StreamResult(pw);// 从字节流构造 StreamResult // 充当转换结果的持有者,可以为 // XML、纯文本、HTML 或某些其他格式的标记 transformer.transform(source, result);// 将 XML Source 转换为 Result }catch (Exception e) { // TODO: handle exception } }