Ich muss CSV in XML und dann in OutputStream konvertieren. Regel ist "
in "
in meinem Code zu konvertieren.Korrigieren von XML-Code in Java
Eingang CSV Zeile:
{"Test":"Value"}
Erwartete Ausgabe:
<root>
<child>{"Test":"Value"}</child>
<root>
Stromausgang:
<root>
<child>{&quot;Test&quot;:&quot;Value&quot;}</child>
<root>
Code:
File file = new File(FilePath);
BufferedReader reader = null;
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder domBuilder = domFactory.newDocumentBuilder();
Document newDoc = domBuilder.newDocument();
Element rootElement = newDoc.createElement("root");
newDoc.appendChild(rootElement);
reader = new BufferedReader(new FileReader(file));
String text = null;
while ((text = reader.readLine()) != null) {
Element rowElement = newDoc.createElement("child");
rootElement.appendChild(rowElement);
text = StringEscapeUtils.escapeXml(text);
rowElement.setTextContent(text);
}
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Source xmlSource = new DOMSource(newDoc);
Result outputTarget = new StreamResult(outputStream);
TransformerFactory.newInstance().newTransformer().transform(xmlSource, outputTarget);
System.out.println(new String(baos.toByteArray()))
Könnten Sie bitte helfen? Was vermisse ich und wenn &
zu &
konvertieren?
Sie sind doppelt entkommen. DOM wird für dich entkommen, aber du entkommst auch. Entfernen Sie den Aufruf von 'StringEscapeUtils.escapeXml (Text)'. – Andreas
Ich habe darüber gelesen. Seltsam ist, dass nach dem Entfernen entkommen, gibt es keine Flucht passieren. – user3305630
Da Sie nur "" in Attributen mit Werten, die von '" 'zitiert werden, z. das ist gültiges XML: ' er hatte gesagt:" Hallo " '. Die Zeichen '<' und '&' müssen immer in Anführungszeichen gesetzt werden (außer in CDATA), während '>' nur nach ']]' zitiert werden muss (wie im CDATA-Terminator ']]>'), aber '>' ist normalerweise immer auch zitiert. –
Andreas