dom4j 遍历所有元素和属性
来源:互联网 发布:台北故宫知乎 编辑:程序博客网 时间:2024/06/19 03:43
Dom4j是java中常用读取xml文件的工具,就方便性和性能方面,一定程度要优于JDK中Domcument和SAX解析的。
package Test;import org.dom4j.Attribute;import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.StringWriter;import java.util.*; public class XmlTest { public static void main(String args[]) throws DocumentException { XmlTest test = new XmlTest(); Element element;try {element = test.testGetRoot("d:\\MS01003 药品目录 V2.00.xml"); String x= element.asXML();String newfileName = "d:\\MS01003 药品目录 V2.00"+"-新.xml";writeFile(newfileName, formatXml(x, "utf-8", false), "utf-8"); } catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} } public Element testGetRoot(String pathName) throws Exception{ SAXReader sax=new SAXReader();//创建一个SAXReader对象 File xmlFile=new File(pathName);//根据指定的路径创建file对象 Document document=sax.read(xmlFile);//获取document对象,如果文档无节点,则会抛出Exception提前结束 Element root=document.getRootElement();//获取根节点 this.getNodes(root);//从根节点开始遍历所有节点 return root; } /** * 递归遍历方法 * * @param element */ public void getNodes(Element node){ //当前节点的名称、文本内容和属性 node.setText(""); List<Attribute> listAttr=node.attributes();//当前节点的所有属性的list for(Attribute attr:listAttr){//遍历当前节点的所有属性 attr.setText(""); } //递归遍历当前节点所有的子节点 List<Element> listElement=node.elements();//所有一级子节点的list for(Element e:listElement){//遍历所有一级子节点 this.getNodes(e);//递归 } } public static Document getTempletdoc(String templetName){SAXReader reader = new SAXReader();Document templetdoc = null;try { templetdoc = reader.read(new File(templetName));} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}return templetdoc;} public static String formatXml(String content, String charset, boolean istrans) { OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(charset); StringWriter sw = new StringWriter(); XMLWriter xw = new XMLWriter(sw, format); xw.setEscapeText(istrans); //istrans false这样&符号就不会被转义了 try { xw.write(content); xw.flush(); xw.close(); } catch (IOException e) { System.out.println("格式化XML文档发生异常,请检查!"); e.printStackTrace(); } return sw.toString(); } public static void writeFile(String filePathAndName, String fileContent,String charsetName) { try { File f = new File(filePathAndName); if (!f.exists()) { f.createNewFile(); } OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),charsetName); BufferedWriter writer=new BufferedWriter(write); writer.write(fileContent); writer.close(); } catch (Exception e) { System.out.println("写文件内容操作出错"); e.printStackTrace(); } } }
jar包免费下载
dom4j-1.6.1.jar
0 0
- dom4j 遍历所有元素和属性
- Dom4j解析xml文件-递归遍历所有节点和属性
- Dom4j解析xml文件-递归遍历所有节点和属性
- Dom4j解析xml文件-递归遍历所有节点和属性
- Dom4j解析xml文件-递归遍历所有节点和属性
- Dom4j解析xml文件-递归遍历所有节点和属性
- Dom4j递归遍历XML所有元素
- dom4j递归遍历XML的所有元素
- 关于‘Dom4j递归遍历XML所有元素 ’的一点看法
- C#加载XML文件,遍历所有的元素和属性匹配
- 020遍历打印一个元素的所有属性
- hashmap遍历所有元素
- 所有元素遍历
- 遍历对象的所有属性和属性值
- CH22,p437...遍历所有属性和属性的值
- 采用dom4j解析所有的元素并打印和保存到内存中
- dom4j demo4j 获取所有节点/属性
- [BCB] 遍历界面所有元素
- 比较器Comparator 和 Comparable的简单区别
- Binary XML file line #8: Error inflating class android.support.design.widget.NavigationView
- red5搭建流媒体直播系统
- Android NDK R9
- 查询功能:动态的添加列名和条件
- dom4j 遍历所有元素和属性
- 今天开始学模式识别与机器学习Pattern Recognition and Machine Learning (PRML),章节1.2,Probability Theory (下)
- 判断元素是否绑定了事件
- Jsp跳出frame框架
- 最近学习qt,一些细节备忘
- algrothm_Further_One
- sybase数据库JDBC连接方式
- 判断一个数中的二进制中有几个1
- 调用系统应用选择联系人并返回联系人信息