直接上代碼
maven依賴:
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
xml示例:
<result>
<code>12345</code>
<data>
<user>
<username>admin</username>
<password>admin123</password>
<realname>管理員</realname>
</user>
<user>
<username>test</username>
<password>test123</password>
<realname>測試專員</realname>
</user>
</data>
</result>
解析代碼:
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import java.util.List;
/**
* 功能描述:
*
* @author liuchaoyong
* @version 1.0
* @date 2019-04-26 12:05
*/
public class Test {
public static void main(String[] args) throws DocumentException {
String message = "<result>\n" +
" <code>12345</code>\n" +
" <data>\n" +
" <user>\n" +
" <username>admin</username>\n" +
" <password>admin123</password>\n" +
" <realname>管理員</realname>\n" +
" </user>\n" +
" <user>\n" +
" <username>test</username>\n" +
" <password>test123</password>\n" +
" <realname>測試專員</realname>\n" +
" </user>\n" +
" </data>\n" +
"</result>";
//將xml字符串解析爲Document對象
Document document = DocumentHelper.parseText(message);
//獲取根結點
Element result = document.getRootElement();
//獲取result節點下code的值
String code = result.elementText("code");
System.out.println("code >>>> " + code);
//獲取data節點
Element data = result.element("data");
//獲取data節點下所有名爲user的節點
List<Element> userList = data.elements("user");
userList.forEach(user -> {
String username = user.elementText("username");
String password = user.elementText("password");
String realname = user.elementText("realname");
System.out.println("username >>>> " + username);
System.out.println("password >>>> " + password);
System.out.println("realname >>>> " + realname);
});
}
}
輸出:
code >>>> 12345
username >>>> admin
password >>>> admin123
realname >>>> 管理員
username >>>> test
password >>>> test123
realname >>>> 測試專員