java - 从请求中获取命名空间前缀并在 Spring Java 中查找带有它的元素

标签 java xml spring soap spring-ws

我想去掉静态“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>

最佳答案

使用以下内容修复了该问题。

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();
            }
    }
}

关于java - 从请求中获取命名空间前缀并在 Spring Java 中查找带有它的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15769081/

相关文章:

java - spring-xd如何使用source :file read line one by one

java - Spring Data JPA无法找到带有id的对象

java - 计算代表已填充属性数量的 Java 对象的百分比

java - Spring 启动 : Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean

java - 使用 m2eclipse 开发 Web 应用程序的首选方式

java - Ant 在内存不足时调用 taskkill

java - 从 org.w3c.dom.Node 获取 Xpath

java - java中的聚合

xml - 将xml "rows"加载到R数据表中

java - Spring MVC POST 提交不起作用