JAVA 取XML问题,取回是null。请大家看下是什么问题。

以下为XML文档节点,是从webServie上返回的数据。<?xmlversion="1.0"encoding="utf-8"?><stringxmlns="http:/... 以下为XML文档节点,是从webServie上返回的数据。
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">
<?xml version="1.0" encoding="GBK"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetSysTime>
<result>
<code>0</code>
<note>成功</note>
</result>
<data>
<SysTime>2012-08-15 09:44:07</SysTime>
</data>
</GetSysTime>
</soap:Body>
</soap:Envelope>
</string>
在JAVA中取它的父类:
NodeList nodeList = doc.getElementsByTagName("soap:Body");
Node fatherNode = nodeList.item(0);

NamedNodeMap attributes = fatherNode.getAttributes();
attributes.getLength(); //可以取到它的长度是为1的。

但是继续想往下取子节点时,却是返回NULL
Node attribute = attributes.item(0);
System.out.println("属性名为:" + attribute.getNodeName()
+ " 属性值为:" + attribute.getNodeValue());

也试过直接
NodeList nodeList = doc.getElementsByTagName("GetSysTime");
返回是null。

麻烦请大家看下是怎么回事,是不是这个XML返回的有问题?
展开
 我来答
tswjhhi
2012-08-15 · TA获得超过559个赞
知道答主
回答量:57
采纳率:0%
帮助的人:46.5万
展开全部
获取节点时候要从跟路径获取,你的 NodeList nodeList = doc.getElementsByTagName("soap:Body"); 这个是没错的,因为是跟节点,但是
NodeList nodeList = doc.getElementsByTagName("GetSysTime"); 这句话就错了,因为节点路径没有写,应该为
List<Element> list = doc.selectNodes("//soap:Body//Cdc//GetSysTime");

获取节点看我的方法多简单:
Element root = dc.getRootElement();//获取跟节点
Element cchild = root.getChild("soap:Body").getChild("GetSysTime").getChild("result").getChild("code");//获取子code节点

String checkerName = cchilded.getChildTextTrim("code");//获取值得大小

其他的也是一样的,获取节点
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式