dom4j在读取时忽略xmlns属性

时间:2013-07-10 20:45:03

标签: java xml xml-parsing dom4j

我不知道为什么但是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 :(得分:0)

您可以通过

获取默认命名空间

element.getNamespace()

可以使用

获取所有其他名称空间

element.additionalNamespaces()

答案 1 :(得分:0)

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

document.getRootElement().getNamespaceURI()

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

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

document.getRootElement().additionalNamespaces()

答案 2 :(得分:-1)

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

Namespace.get(String uri)

Namespace.get(String prefix, String uri)