输入为xml格式字符串
public static void main(String[] args) throws DocumentException {
String xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<products>"
+ "<subject><subjectName>1</subjectName><subjectUrl>333</subjectUrl></subject>"
+ "</products>";
//获取sax解析器对象
SAXReader reader = new SAXReader();
//转换字符串为java.io.Reader对象
Reader stringReader=new StringReader(xml);
//读取Reader对象,获取Document对象
Document document=reader.read(stringReader);
//获取根元素
Element root = document.getRootElement();
//获取根元素的名称
String rootName=root.getName();
System.out.println("根节点名称: "+rootName);
//获取子节点subject
Element child1=root.element("subject");
//获取子节点subjectName
Element child2=child1.element("subjectName");
String child2Name=child2.getName();
String child2Text=child2.getText();
System.out.println("子节点subjectName名称: "+child2Name);
System.out.println("子节点subjectName内容: "+child2Text);
}
结果:
输入为xml文件:
public static void main(String[] args) throws DocumentException, FileNotFoundException {
//获取XML文件
InputStream fis=new FileInputStream("E:\\test.xml");
//获取sax解析器对象
SAXReader reader = new SAXReader();
//读取XML文件,获取Document对象
Document document=reader.read(fis);
//获取根元素
Element root = document.getRootElement();
//获取根元素的名称
String rootName=root.getName();
System.out.println("根节点名称: "+rootName);
//获取子节点subject
Element child1=root.element("subject");
System.out.println("子节点subject及以下全部内容: \n"+child1.asXML());
//获取子节点subjectName
Element child2=child1.element("subjectName");
String child2Name=child2.getName();
String child2Text=child2.getText();
System.out.println("子节点subjectName名称: "+child2Name);
System.out.println("子节点subjectName内容: "+child2Text);
}
结果: