kostenloser Webspace werbefrei: lima-city


XML Modifizieren

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    hswlab

    Kostenloser Webspace von hswlab

    hswlab hat kostenlosen Webspace.

    Hallo zusammen,

    ich habe folgende tag/beispiel">Beispieldatei mit mehreren tausend "item" tags:

    beispiel.xml
    <?xml version='1.0'?>
    <item>...</Item>
    <item>...</Item>
    <item>...</Item>
    ...


    Nun würde ich gerne alle "item" tags in einem "itmes" tag einbetten.

    beispiel-angepasst.xml
    <?xml version='1.0'?>
    <items>
        <item>...</Item>
        <item>...</Item>
        <item>...</Item>
        ...
    </items>


    Kann mir jemand ein Code-Beispiel zeigen, um die xml Datei entsprechend zu modifizieren?


    EDIT:
    Folgendes wurde probiert, was leider nicht funktioniert, da die erste Datei einen invaliden Aufbau hat ;-)
    => Markup im Dokument nach dem Root-Element muss ordnungsgemäß formatiert sein.

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document doc = builder.parse(new File("beispiel.xml"));
    
    Element newRoot = doc.createElement("items");
    newRoot.appendChild(doc.getFirstChild());
    doc.appendChild(newRoot);
    
    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    transformer.transform(new DOMSource(doc), new StreamResult(new File("beispiel-angepasst.xml")));


    Gibt es einen Trick, die beispiel.xml dennoch zu editieren bzw. zu validieren, auch wenn diese einen invaliden Aufbau besitzt?

    Beitrag zuletzt geändert: 1.1.2016 22:55:39 von hswlab
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Du könntest nach der XML-Deklaration (oder falls es keine gibt direkt an den Anfang) dein Start-Tag
    <items>
    einfügen und an das Ende des Dokuments ein
    </items>
    anhängen. Dann lässt sich das Ergebnis problemlos parsen. Die »Umformung« wäre hier also lediglich eine String-Manipulation.
  4. johanneskirchgemeinde

    johanneskirchgemeinde hat kostenlosen Webspace.

    Wenn Die Datei nur etwas ähnliches wie XML enthält (mehrere Root-Elemente - das möchtest du anscheinend korrigieren; öffnendes und schließendes Tag haben unterschiedliche Namen), kann es nicht als XML geparst werden.

    Ich sehe jetzt nur wie hackyourlife die Möglichkeit, das Ergebnis durch Stringmanipulation zu erreichen.
  5. Autor dieses Themas

    hswlab

    Kostenloser Webspace von hswlab

    hswlab hat kostenlosen Webspace.

    Danke euch. :-)
    Der Vollständigkeit halber, hier nochmal meine Lösung zum Problem.
    Ich habe die Datei mit RandomAccessFile bearbeitet. Damit lässt sich der Inhalt einer Datei überschreiben.
    Dabei musste leider die erste Zeile "<?xml version='1.0'?>" dran glauben, was aber nicht so schlimm ist.

    RandomAccessFile f = new RandomAccessFile(new File("beispiel.xml"), "rw");
    f.seek(0);
    f.write("<items>              ".getBytes());
    f.seek(f.length());
    f.write("\n</items>".getBytes());
    f.close();


    Resultat:
    <items>
        <item>...</Item>
        <item>...</Item>
        <item>...</Item>
        ...
    </items>


    Beitrag zuletzt geändert: 3.1.2016 16:38:48 von hswlab
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!