[XML] odpowiednik Element.getText() który nie łączy łańcuchó

0

Mam taki problem. Dla przykładowego pliku:

<template> czesc pierwsza
    <set name="username">jasiu</set>
    czesc druga
</template>

Funkcja getText() z klasy org.dom4j.Element zwróci: "czesc pierwsza czesc druga", ponieważ funkcja łączy wszystkie znalezione łańcuchy.
Ja chciałbym natomiast mieć osobno części z przed oraz za tagiem set. Czy jest jakiś sposób, aby coś takiego uzyskać?
Najwygodniej dla mnie byłoby uzyskać listę dzieci z elementami kolejno: String, Element, String dla elementu template

0

Użyj przetwarzania eventowego za pomocą SAXa. Działa on na innej zasadzie niż DOM i łatwie jest w nim wyciągać pojedyncze elementy.

0

Przetwarzanie eventowe fajna rzecz, ale nie nie bardzo mi pasowało do koncepcji. Znalazłem coś takiego(mając obiekt element klasy Element):

DefaultElement def = (DefaultElement) element;
List list = def.content();
for(Object a : list) {
    if(a instanceof DefaultElement) {
        //operacje na elemencie
    } else if(a instanceof DefaultText) {
        //operacje na łańcuchu (czyli takie getText() bez łączenia  :-) )
    }

i program śmiga :-)

0
Koziołek napisał(a)

Użyj przetwarzania eventowego za pomocą SAXa. Działa on na innej zasadzie niż DOM i łatwie jest w nim wyciągać pojedyncze elementy.

SAX jest niestety zbagowany :-( W przypadku dużych xml z zawartością taga zawierającą @ ma duże problemy ;P

1 użytkowników online, w tym zalogowanych: 0, gości: 1