用dom4j解析xml格式的字符串时报错[Document: name null] 找不到下面的节点

selina_vip 2018-04-27 06:34:46
示例代码如下:

String respXmlData = "<RespInfo><ResultStatus>02</ResultStatus><ResultCode>BD1003</ResultCode></RespInfo>";
try {
Document document = DocumentHelper.parseText(respXmlData);
System.out.println(document.asXML().toString());
// 获取节点元素对象与值
Element rootNode = document.getRootElement();
Element respInfoNode = rootNode.element("RespInfo");
System.out.println(respInfoNode.getText());
} catch (DocumentException e) {
e.printStackTrace();
}


获取rootNode这些都是为空,请各位大神帮忙看看
...全文
2005 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
selina_vip 2018-04-28
  • 打赏
  • 举报
回复
后面才明白节点需要层层获取

String respXmlData = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><Document><RespInfo><ResultStatus>02</ResultStatus><ResultCode>BD1003</ResultCode></RespInfo></Document>";
try {
	Document document = DocumentHelper.parseText(respXmlData);
	System.out.println(document.asXML().toString());
	// 获取节点元素对象与值
	Element rootNode = document.getRootElement();
	System.out.println("根节点名称是:" + rootNode.getName());
	Element respInfoNode = rootNode.element("RespInfo");
	System.out.println(respInfoNode.element("ResultStatus").getText());
} catch (DocumentException e) {
	e.printStackTrace();
}
QWERT4745 2018-04-28
  • 打赏
  • 举报
回复
document.getRootElement()已经获取到的根节点下的元素,也就是<ResultStatus>02</ResultStatus><ResultCode>BD1003</ResultCode>,不能再去取RespInfo,而要改成

Document document = DocumentHelper.parseText(respXmlData);
System.out.println(document.asXML().toString());
// 获取节点元素对象与值
Element rootNode = document.getRootElement();
Element resultStatus = rootNode.element("ResultStatus");
Element resultCode = rootNode.element("ResultCode");
System.out.println(resultStatus.getText());
System.out.println(resultCode.getText());

50,857

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧