String mit XMLDaten verarbeiten

Loki2

Erfahrenes Mitglied
Hallo

Wie kann ich einen normalen String verarbeiten der valide XMLDaten enthält?
Wenn ich die Daten als XML Datei in mein Programm lade funktioniert alles so wie es soll.Jetzt kommt es aber bei dem Applett vor das dieses über einen Parameter einen XML Text übergeben bekommt. Mir ist nur nicht klar wie ich das jetzt am besten weiter verarbeiten kann da es ja als normaler String ankommt. Wäre es sinnvoll das einfach in eine XML Datei zu schreiben und diese dann zu laden oder geht es auch irgendwie mit XMLString Das Problem ist das sich das XML aus der Datei und dem übergebenen Text unterscheiden und ich aus dem übergebenen XML Text (ist auf jeden Fall valides XML) nur bestimmte Informationen brauche.

Wie kann ich also aus einem ganz normalen String XML erzeugen mit dem ich weiterarbeiten kann?

Hoffe mir kann jemand weiterhelfen.

Gruß und so
Loki2
 
Hallo,
ich bin mir nicht sicher ob ich dich richtig verstanden hab?
Du hast einen XML strukturiereten String und möchtest diesen parsen?
Wenn ja dann geht das über einen StringReader und der Methode
DocumentBuilder.parse(InputSource in);
Ungefähr so:

Code:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.xml.sax.InputSource;
import java.io.StringReader;
import org.w3c.dom.Document;

class XMLStringReaderExample{

    public static void main(String[] args) throws Exception{
        String xmlContent = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
        xmlContent += "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
        xmlContent += "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
        xmlContent += "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">\n";
        xmlContent += " <head><title>test</title></head>\n";
        xmlContent += " <body></body>\n";
        xmlContent += " </html>";
        DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document doc = parser.parse(new InputSource(new StringReader(xmlContent)));
        System.out.println("DOCTYPE of xml document is: " + doc.getDoctype().getName());
    }
}

//edit Rechtschreibfehler ausgebessert :)

Gruß

RedWing
 
Zuletzt bearbeitet:
Zurück