dom4j里面elements()和contents()方法的区别
在dom4j里面这两个方法都返回的是list,但是两个list可能有所不同。看了例子:
xml文件:
<?xml version="1.0"?>
<note>
<to></to>
<from>John</from>
<heading>Reminder</heading>
<body>5555
<head>333</head>
</body>
</note>
java文件:
File file=new File("C:\\Users\\Administrator\\Desktop\\zzz\\1.xml");
SAXReader reader=new SAXReader();
Document document=reader.read(file);
System.out.println(document.getRootElement().elements());//取到该元素下的子节点,对于孙子节点取不到
System.out.println(document.getRootElement().elements().size());//有多少个直接子节点
System.out.println(document.getRootElement().content());//可以取到该元素下所有的后代元素,其中还包括后代元素的text内容
System.out.println(document.getRootElement().content().size());//有多少个后代元素,包括他们text内容的总个数
执行结果:
[org.dom4j.tree.DefaultElement@19fcc69 [Element: <to attributes: []/>], org.dom4j.tree.DefaultElement@253498 [Element: <from attributes: []/>], org.dom4j.tree.DefaultElement@9fef6f [Element: <heading attributes: []/>], org.dom4j.tree.DefaultElement@209f4e [Element: <body attributes: []/>]]
4
----------------------------------------------------------------------------------------------
[org.dom4j.tree.DefaultText@17172ea [Text: "
"], org.dom4j.tree.DefaultElement@19fcc69 [Element: <to attributes: []/>], org.dom4j.tree.DefaultText@12f6684 [Text: "
"], org.dom4j.tree.DefaultElement@253498 [Element: <from attributes: []/>], org.dom4j.tree.DefaultText@f38798 [Text: "
"], org.dom4j.tree.DefaultElement@9fef6f [Element: <heading attributes: []/>], org.dom4j.tree.DefaultText@4b222f [Text: "
"], org.dom4j.tree.DefaultElement@209f4e [Element: <body attributes: []/>], org.dom4j.tree.DefaultText@b169f8 [Text: "
"]]
9