使用DOM4J和XPath两种方式分别解析XML
程序员文章站
2022-05-28 21:03:51
...
使用DOM4J和XPath两种方式分别解析XML
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.junit.Test;
public class Teste {
//Dom4j解析XML
@Test
public void test1() throws DocumentException{
//创建reder
SAXReader reader=new SAXReader();
//得到xml文件docment
Document docment =reader.read("src/MyXml.xml");
//得到xml的根节点
Element root =docment.getRootElement();
//取出标记为books的节点bookNode
// Element bookNode=root.element(“books”);
//输出booKNode节点名
// System.out.println(bookNode.getName());
//将根节点root中的每个节点放入list集合中
List list=root.elements();
//取出root的第二个子节点secondBook
Element secondBook = (Element)list.get(1);
//取出secondBook节点的下子节点标记bookname,并取出它的内容,输出
String name=secondBook.element(“bookname”).getText();
System.out.println(name);
}
@Test
public void test2() throws DocumentException{
//创建reder
SAXReader reader=new SAXReader();
//得到xml文件docment
Document docment =reader.read("src/MyXml.xml");
//得到xml的根节点
Element root =docment.getRootElement();
//将root放入方法treeWake中
treeWake(root);
}
private void treeWake(Element ele) {
//使用递归输出每个节点的名
System.out.println(ele.getName());
for(int i=0;i<ele.nodeCount();i++){
//循环取出每个节点的标记
Node node=ele.node(i);
//如果标记的类型是Element
if(node instanceof Element){
//将这个节点放入treeWake这个方法中,递归
treeWake((Element)node);
}
}
}
//XPath解析XML
@Test
public void test3 () throws DocumentException{
//创建read
SAXReader read=new SAXReader();
//得到xml文件doument
Document doument=read.read("src/MyXml.xml");
//得到目录下/bookstar/books[1]/bookname的节点
Node node=doument.selectSingleNode("/bookstar/books[1]/bookname");
//将这个节点node输出其中的内容
System.out.println(node.getText());
}
@Test
public void Test4() throws DocumentException{
//创建read
SAXReader read=new SAXReader();
//得到xml文件doument
Document doument=read.read("src/MyXml.xml");
//将的得到doument所有的节点,存到list中
List list=doument.selectNodes("//*");
for(int i=0;i<list.size();i++){
//循环遍历出每个节点
Node node=(Node)list.get(i);
//并将所有节点的内容输出
System.out.println(node.getName());
}
}
}
上一篇: 普洱茶的保质期辟谣,普洱茶“越陈越香”,没有保质期
下一篇: 苞谷汤热量你知道多少
推荐阅读
-
Java使用dom方式解析和操作xml,递归解析xml以yml格式输出
-
使用 XPATH 和 HTML Cleaner 解析 HTML/XML(Using XPATH and HTML Cleaner to parse HTML / XML)_html/css_WEB-ITnose
-
Python3:使用lxml库来解析xml文件和html文件(使用xpath方式解析)
-
python爬虫:使用xpath和find两种方式分别实现使用requests_html库爬取网页中的内容
-
Java中使用DOM方式解析和创建XML文档、及dom4j使用简介
-
使用SAX和dom4j解析XML文档
-
Java使用DOM和DOM4J分别解析XML文件步骤以及代码
-
Dom4j和XPath的XML解析技术
-
使用dom4j和XPath解析XML
-
使用 dom4j + xpath 解析 xml 文件