Heim > Java > javaLernprogramm > Wie formatiere ich einen unformatierten XML-String in Java mit JAXP und DOM?

Wie formatiere ich einen unformatierten XML-String in Java mit JAXP und DOM?

DDD
Freigeben: 2024-12-18 01:11:17
Original
517 Leute haben es durchsucht

How to Format an Unformatted XML String in Java Using JAXP and DOM?

Formatieren einer XML-Zeichenfolge in Java

Als Java-Entwickler kann es vorkommen, dass Sie eine XML-Zeichenfolge ohne Zeilenumbrüche haben oder Einrückungen und müssen es in eine schön formatierte Zeichenfolge konvertieren. Dies ist besonders nützlich für Debugging-Zwecke oder für die lesbare Darstellung von XML-Daten.

Um diese Aufgabe zu erfüllen, können Sie die Java API for XML Processing (JAXP) und das Document Object Model (DOM) nutzen, um die zu transformieren XML-String in eine formatierte Darstellung.

Erstellen Sie zunächst ein neues Transformer-Objekt aus der TransformerFactory. Setzen Sie die Eigenschaften „INDENT“ und „{http://xml.apache.org/xslt}indent-amount“ auf „yes“ bzw. „2“, um Zeilenumbrüche und Einrückungen zu ermöglichen:

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
Nach dem Login kopieren

Als nächstes konvertieren Sie die XML-Zeichenfolge in ein DOMSource-Objekt:

String inputXml = "<tag><nested>hello</nested></tag>";
DOMSource source = new DOMSource(DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(inputXml))));
Nach dem Login kopieren

Erstellen Sie dann ein StreamResult-Objekt, um das formatierte XML zu speichern string:

StreamResult result = new StreamResult(new StringWriter());
Nach dem Login kopieren

Zuletzt transformieren Sie das Quell-DOM mithilfe des Transformators in die formatierte XML-Zeichenfolge:

transformer.transform(source, result);
Nach dem Login kopieren

Das result.getWriter()-Objekt enthält das formatierte XML Zeichenfolge:

String formattedXml = result.getWriter().toString();
Nach dem Login kopieren

Beispiel:

String unformattedXml = "hello";
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
DOMSource source = new DOMSource(DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(unformattedXml))));

StreamResult result = new StreamResult(new StringWriter());
transformer.transform(source, result);
System.out.println(result.getWriter().toString());
Nach dem Login kopieren

Ausgabe:

<?xml version="1.0" encoding="UTF-8"?>
<tag>
  <nested>hello</nested>
</tag>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie formatiere ich einen unformatierten XML-String in Java mit JAXP und DOM?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage