XML Dokument manipulieren

Von: , Frage gestellt am Fr, 7. Nov 2003

Hallo zusammen,
Ich stehe wieder mal auf dem Schlauch.

Ich habe ein XML Dokument das wie folgt aussieht:

<request>
<header service="DossierService" method="createDossier">
<bearbeiter bearbeiterid="1" userid="U135045" wsnummer="1234" uiccode="85" dienststelle="123456" verkaufsdienst="12" sprache="d" />
</header>
<data>
Testdaten
</data>
</request>


Daraus möchte ich nun zwei Dokumente machen:

1.
<header service="DossierService" method="createDossier">
<bearbeiter bearbeiterid="1" userid="U135045" wsnummer="1234" uiccode="85" dienststelle="123456" verkaufsdienst="12" sprache="d" />
</header>

2.
<data>
Testdaten
</data>


Das XML-Dokument wird mir als String geliefert und ich möchte daraus auch zwei Strings erzeugen.

Ich verwende 1.3 d.h. RegEx stehen nicht zur Verfügung.
Schön wäre es mit DOM.

Vielen Dank für eure Hilfe.

Viele Grüsse
Simon

5 Antworten zu dieser Frage

  1. Antwort von nach 15 Stunden 0 hilfreich
    Re: XML Dokument manipulieren

    Hallo Simon,

    Ich würde in etwa so lösen:
    1. suche position von '<data>'
    2. schreibe xml.substring(0,position) in BufferedWriter_1
    //snipp
    String txt = xml.substring(0,position);
    BufferedWriter f = new BufferedWriter(new FileWriter(filename,true));
    f.write( txt , 0 , txt.length() );
    f.close();
    //snap
    3. xml-Str=xml.substring(position + 6) //länge '<data>'
    4. suche position von '</data>'
    5. schreibe xml.substring(0,position) in BufferedWriter_2
    6. xml-Str=xml.substring(position + 7) //länge '<\data>'
    und zurück zu 1.

    Gutes Gelingen!
    Marc [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

    • Antwort von nach 18 Stunden 0 hilfreich
      Re^2: XML Dokument manipulieren

      Hallo Marc,

      Vielen Dank für Deine Hilfe!

      Wie würde es aber aussehen, wenn man das mit einem DOM-Parser (XERCES oder so) lösen würde?

      Viele Grüsse
      Simon

  2. Antwort von nach 20 Stunden 0 hilfreich
    Regular Expressions

    Hi.

    Das Package gnu.regexp
    http://www.cacas.org/java/gnu/regexp/

    ist laut beschreibung auch mit deiner Java-Version lauffähig. Dh. dass du schon regular Expressions nutzen kannst. Die Verwendung ist imho auch sehr einfach:

    String resource = "<bla>123</bla><nudel>456</nudel>";
    String result = "";
    try {
    gnu.regexp.RE re = new gnu.regexp.RE("<bla>(.*?)</bla>");
    gnu.regexp.REMatch reMatch = re.getMatch(resource);
    result = reMatch.toString(1);
    } catch (Exception e) {}
    System.out.oder.was.auch.immer.println(result);
    


    Ob Packages wie z.B. dom4j+xerces auch unter deiner Java-Version laufen, weiss ich nicht. Aber schau einfach mal unter

    http://dom4j.org/index.html

    Die haben auch ein sehr nettes "Quickstart" mit ganz geschwinden Bespielen:

    http://dom4j.org/guide.html

    mfG,

    J.P.Jarolim

    • Antwort von nach 20 Stunden 0 hilfreich
      Re: Regular Expressions

      Hallo,

      Vielen Dank. Werde mir dom4j mal anschauen.
      Sieht sehr vielversprechend aus.

      Viele Grüsse
      Simon

  3. Antwort von nach 13 Tagen 0 hilfreich
    Re: XML Dokument manipulieren

    Hi Simon,

    schau dir doch mal Castor an, ein Framework, welches auf Xerces aufsetzt.
    Mithilfe von Castor kannst du unter anderem anhand von XML-Mappings Klassen aus XML-Dateien füllen und auch wieder XML-Dateien schreiben (marshalling).

    http://castor.exolab.org

    Absolut empfehlenswert!


    Ciao, Bill

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!