2 Stimmen

Entfernen Sie XML-Inhalte und behalten Sie einen bestimmten Knoten (Java-Parser)

Im folgenden XML-Beispiel, wie man mit einem Java-Parser den Inhalt unter dem und gefolgt von center behalten und alles andere entfernen kann?

        .
        .
        .

                center
                Center

                    1

                        100
                        100

                2

                        150
                        150

                ...

                ...

        .
        .
        .

Also sollte die Ausgabe folgendermaßen aussehen:

    center
    Center

        1

            100
            100

    2

            150
            150

Bitte geben Sie Ratschläge. Vielen Dank!

0voto

Alexey Sviridov Punkte 3109

Sie können Java Regexp verwenden, um unerwünschte Inhalte zu entfernen und nur den benötigten Teil zu parsen z.B.

String sourceXML = readFileToString("source.xml")
final Pattern pattern = Pattern.compile(".*(.+).*",Pattern.DOTALL);
Matcher matcher = pattern.matcher(sourceXML);
if (matcher.find()) {
   String xmlToParse = matcher.group(0);
   someDomOrSaxParser.parseFromString(xmlToParse)
}else 
   System.out.println("KEINE ÜBEREINSTIMMUNG");

0voto

Daniel Haley Punkte 48844

Dies wäre eine gute Aufgabe für ein XSLT-Stylesheet.

Dieses Stylesheet:

angewendet auf die Eingabe in der Frage ergibt die folgende Ausgabe:

   center
   Center

      1

         100
         100

      2

         150
         150

Wenn Sie Fragen zur Verwendung von XSLT in Java haben, werfen Sie bitte einen Blick auf diese Frage.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X