可以根据兄弟节点的名称+值,来获取需要查找的节点的值
也可直接查找所要查找的节点的值
maven节点
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
/**
* @description 解析xml字符串
*/
public class xmlUtil {
public static void main(String[] args) throws DocumentException {
String xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + ""
+ "<NewDataSet>"
+ " <Table>" + ""
+ " <Playdate>20200322</Playdate>"
+ " <PlaySeq>009</PlaySeq>"
+ " <OnlineDate>20200315</OnlineDate>"
+ " <NoOfTime>1</NoOfTime>\r\n"
+ " <SeatYN>N</SeatYN>\r\n"
+ " <BalanceSeatYN>N</BalanceSeatYN>"
+ " <CancelableDate>202003211100</CancelableDate>"
+ "<PlayTimeValue>1700</PlayTimeValue>"
+ "" + ""
+ " </Table>\r\n"
+ " <Table>" + ""
+ " "
+ " <PlaySeq>001</PlaySeq>"
+ " <PlayTime>"
+ " <Playdate>20200322</Playdate>"
+ " <PlaySeq>003</PlaySeq>"
+ " </PlayTime> "
+ " <OnlineDate>20200315</OnlineDate>"
+ " <NoOfTime>1</NoOfTime>\r\n"
+ " <SeatYN>N</SeatYN>\r\n"
+ " <BalanceSeatYN>N</BalanceSeatYN>"
+ " <CancelableDate>202003211100</CancelableDate>"
+ "<PlayTimeValue>17010</PlayTimeValue>"
+ " </Table>\r\n"
+ "</NewDataSet>\r\n" + "";
Document doc = DocumentHelper.parseText(xmlString);
Element rootElt = doc.getRootElement();// .elementText("PlayTimeValue")
// 根节点下面的节点
getXml(rootElt.elements(), "Playdate", "20200322", "PlaySeq");
// readStringXml(xmlString);
}
/**
* le:根节点下面的节点们
* findEle 兄弟节点的名称
* findeValue 兄弟节点值
* wantName 要找的节点的名称
*/
public static void getXml(List<Element> le, String findEle, String findeValue, String wantName) {
Element element = null;
for (int i = 0; i < le.size(); i++) {
element = le.get(i);
if (findEle!=null &&findeValue!=null ) {
if(element.getName().equals(findEle) && element.getText().equals(findeValue)) {
System.out.println(element.getParent().element(wantName).getText());
}
}else {//当兄弟节点为null的时候
if(element.getName().equals(wantName)&&findEle==null) {
System.out.println("查找到所需要的节点了"+element.getText());
}
}
if (element.elements().size() > 0) {
getXml(element.elements(), findEle, findeValue, wantName);
}
}
}
}