首页 文章

dom4j在读取时忽略xmlns属性

提问于
浏览
0

我不知道为什么但是dom4j没有加载xmlns属性,例如:

xmlns =“http://webservices.example.com/servicesplatform/command/1.0.0”xmlns:xsi =“http://www.w3.org/2001/XMLSchema-instance”

其他属性正常加载,但只是被忽略 . 我使用属性Iterator检查所有属性的所有属性 .

我是如何阅读这个xml的例子:

SAXReader reader = new SAXReader();

Document document = reader.read(file);
return document;

我不知道我甚至可以尝试什么 . :(任何想法如何从xml文件中获取此属性?:(

编辑:我像这样迭代他们

public void getAllAttributes(Element element) {


    Iterator<Attribute> attributeterator = element.attributeIterator();



    while (attributeterator.hasNext()) {
        Attribute attribute = iteratorAttribute.next();
        System.out.println(attribute.getQualifiedName() + " " + , attribute.getValue());

    }


}

3 回答

  • 0

    您可以通过获取默认命名空间

    element.getNamespace()

    可以使用获取所有其他名称空间

    element.additionalNamespaces()

  • -1

    我正在使用dom4j 2.1.0,以下代码用于获取默认命名空间:

    document.getRootElement().getNamespaceURI()
    

    它返回: http://webservices.example.com/servicesplatform/command/1.0.0

    您可以使用以下命令获取所有名称空间对象:

    document.getRootElement().additionalNamespaces()
    
  • 0

    xmlns 属性是 Namespace's . 要使用 Dom4j 阅读它们,您可以根据需要使用以下两种方法中的任何一种:

    Namespace.get(String uri)

    Namespace.get(String prefix, String uri)

相关问题