如何解决递归Java方法和xml解析
嗨,我有一个Java递归方法,用于解析我的XML。我想为XML的特定级别中的元素设置名称空间。试图设置一个计数器,但是它不起作用。谁能帮我吗?
Xml文件:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<LoginResponse>
<Response>
<ResponseCode>0</ResponseCode>
<ResponseDescription>Request processed successfully</ResponseDescription>
</Response>
<SessionKey>12345a</SessionKey>
<Service>false</Service>
</LoginResponse>
</soapenv:Body>
</soapenv:Envelope>
在此响应中,我想将名称空间添加到ResponseCode
级别的元素中。
Java代码段:
int level = 0;
public void invokeBusinessLogic(Response response) throws Exception
{
Iterator i = response.getFirstElement().getChildElements();//response.getFirstElement() is LoginResponse from the xml
correctNamespace(i);
}
private void correctNamespace(Iterator i) {
level++;
while (i.hasNext()) {
OMElement element = (OMElement) i.next();
Iterator ii = element.getChildElements();
element.setNamespace(null);
if (level == 2)
{
element1.declareNamespace(URI,XMLNS);
}
correctNamespace(ii);
}
}
}
解决方法
您的DOM必须为name space aware。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。