dom4j игнорирует атрибуты xmlns при чтении

Я не знаю почему, но 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());

    }


}

person Mariola    schedule 10.07.2013    source источник
comment
Как вы перебираете атрибуты? Можете выложить код там, где пытаетесь их найти?   -  person Cristian Meneses    schedule 11.07.2013


Ответы (3)


Вы можете получить пространство имен по умолчанию,

element.getNamespace()

Все остальные пространства имен можно получить с помощью

element.additionalNamespaces()

person Cristian Meneses    schedule 10.07.2013
comment
Это сработало, но когда я пытаюсь получить имя этого пространства имен, я получил null :( - person Mariola; 11.07.2013

Я использую dom4j 2.1.0, и следующий код работал для получения пространства имен по умолчанию:

document.getRootElement().getNamespaceURI()

Возвращает: http://webservices.example.com/servicesplatform/command/1.0.0

И вы можете получить все объекты пространств имен с помощью:

document.getRootElement().additionalNamespaces()
person neves    schedule 15.02.2018

xmlns атрибуты Namespace's. Чтобы прочитать их с помощью Dom4j, вы можете использовать любой из следующих двух методов в зависимости от ваших потребностей:

Namespace.get (String uri)

Namespace.get (String префикс, String uri)

person Mubin    schedule 10.07.2013