递归遍历所有xml的节点及子节点
发布时间:2020-12-15 06:39:55 所属栏目:Java 来源:网络整理
导读:import java.io.File; java.util.List; org.dom4j.Attribute; org.dom4j.Document; org.dom4j.Element; org.dom4j.io.SAXReader; /** * 遍历xml所有节点(包括子节点下还有子节点多层嵌套) */ public class TestXML { static void main( final String[] arg
import java.io.File; java.util.List; org.dom4j.Attribute; org.dom4j.Document; org.dom4j.Element; org.dom4j.io.SAXReader; /** * 遍历xml所有节点(包括子节点下还有子节点多层嵌套) */ public class TestXML { static void main(final String[] args) { final TestXML test = new TestXML(); try { test.testGetRoot(); } catch ( Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } * 获取文件的xml对象,然后获取对应的根节点root */ void testGetRoot() throws Exception { final SAXReader sax = new SAXReader(); 创建一个SAXReader对象 final File xmlFile = new File("C:Users.yangDesktopss.xml"); 根据指定的路径创建file对象 final Document document = sax.read(xmlFile); 获取document对象,如果文档无节点,则会抛出Exception提前结束 final Element root = document.getRootElement(); 获取根节点 getNodes(root); 从根节点开始遍历所有节点 } * 从指定节点Element node开始,递归遍历其所有子节点 void getNodes( Element node) { System.out.println("-------开始新节点-------------"); 当前节点的名称、文本内容和属性 System.out.println("当前节点名称:" + node.getName()); 当前节点名称 System.out.println("当前节点的内容:" + node.getTextTrim()); 当前节点内容 final List<Attribute> listAttr = node.attributes(); 当前节点的所有属性 for (final Attribute attr : listAttr) { 遍历当前节点的所有属性 final String name = attr.getName(); 属性名称 final String value = attr.getValue(); 属性的值 System.out.println("属性名称:" + name + "---->属性值:" + value); } 递归遍历当前节点所有的子节点 final List<Element> listElement = node.elements(); 所有一级子节点的list final Element e : listElement) { 遍历所有一级子节点 getNodes(e); 递归 } } } 参考文章:https://blog.csdn.net/sidihuo/article/details/47318723 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |