我想去掉静态的"ims:“,将SOAP请求中的前缀与名称空间xmlns:ims="http://www.imsglobal.org/services/lis/bdems1p0/wsdl11/sync/imsbdems_v1p0
一起使用。我如何在Spring拦截器中做到这一点?
protected String findProperty(SOAPHeader soapHeader, String propertyName) {
NodeList list = soapHeader.getElementsByTagName("ims:" + propertyName);
我想要的属性是
<ims:imsx_syncRequestHeaderInfo>
<ims:imsx_version>V1.0</ims:imsx_version>
<ims:imsx_messageIdentifier>?</ims:imsx_messageIdentifier>
</ims:imsx_syncRequestHeaderInfo>
发布于 2013-04-10 04:52:13
用以下代码修复了它。
NodeList nodeList = soapHeader.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE
&& node.getLocalName().equalsIgnoreCase(propertyName)) {
if (node.getTextContent().isEmpty()) {
return null;
} else {
return node.getTextContent();
}
}
}
https://stackoverflow.com/questions/15769081
复制相似问题