使用dom4j解析xml
xml格式如下
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright w3school.com.cn -->
<!-- W3School.com.cn bookstore example -->
-<bookstore>
-<book category="children">
<key>
<int>100</int>
</key>
<value>
<string>aaaa</string>
<string>bbb</string>
<string>ccc</string>
</value>
</book>
-<book category="cooking">
<key>
<int>100</int>
</key>
<value>
<string>aaaa</string>
</value>
</book>
-<book category="web" cover="paperback">
<key>
<int>100</int>
</key>
<value>
<int>123</int>
<int>456</int>
<int>789</int>
</value>
</book>
代码
------创建实体类
@Data
public class dto {
private int key;
private List<Object> value;
}
-----逻辑
// 创建SAXReader
SAXReader reader = new SAXReader();
//从xml文件获取数据
Document document = reader.read(new File("/analysisxml/src/analysis/InstrumentRecord.xml"));
// 获取根节点 emps
Element root = document.getRootElement();
// 查找指定节点名称book 的所有子节点elements
// 得到所有book 元素
List<Element> list = root.elements("book ");
// 实体类
List<dto>dtos=new ArrayList<>();
for (Element element : list) {
dto dto =new dto();
// 循环输出全部emp的相关信息
System.out.println("element.getName()==>"+element.getName());
// 得到emp元素下的子元素
List<Element> Key = element.elements("Key");
for (Element value : Key) {
Element string = value.element("int");
dto.setKey( string.getText());
System.out.println("key:" + string.getText());
}
List<Element> Value = element.elements("Value");
for (Element value : Value) {
List<Object> values =new ArrayList<>();
List<Element> elements = value.elements("ArrayOfString");
for (Element element1 : elements){
List<Element> elements1 = element1.elements("string");
for (int i = 0; i < elements1.size(); i++) {
String name = elements1.get(i).getText();
values.add(name);
System.out.println("qqqqqqq:" + name);
}
}
List<Element> string = value.elements("string");
for (int i = 0; i < string.size(); i++) {
String name = string.get(i).getText();
values.add(name);
System.out.println("Value:" + name);
}
List<Element> elements1 = value.elements("int");
for (int i = 0; i < elements1.size(); i++) {
String name = elements1.get(i).getText();
values.add(name);
System.out.println("elements1:" + name);
}
//抛出异常