ich ein XML-String mit einem gewissen Tag wie folgt haben:ein XML-String Parsen erhalten keine weißen Flecken innerhalb Tag
den weißen Raum<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
Bitte beachten Sie vor dem „/>“. Aufgrund meiner Spezifikationen muss ich diesen Leerraum beibehalten, aber jedes Mal, wenn ich die Zeichenfolge analysiere, lösche der Parser diesen Leerraum.
mein Code Hier ist ("line" ist der XML-String):
byte[] base64DecodedResponse = Base64.decode(line);
InputStream stream = new ByteArrayInputStream(base64DecodedResponse);
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
documentBuilderFactory.setIgnoringElementContentWhitespace(true);
documentBuilderFactory.setValidating(true);
DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = docBuilder.parse(stream);
Ich versuchte Parser (Sax statt javax.xml.parser) zu ändern, aber das Problem bleibt. Irgendeine Lösung? Vielen Dank.
Sie meinen, wenn Sie die XML-Ausgabe zurück in eine Datei schreiben, müssen Sie vor jeder einen Raum setzen />? Wenn dies der Fall ist, müssen Sie möglicherweise Ihren eigenen Serializer für XML schreiben. –
Ich bekomme eine Base64-Datei, ich entziffere sie, und ich bekomme meine XML-String, mit allen Leerzeichen an den richtigen Stellen, wenn ich die Zeichenfolge analysieren, um ein Dokument zu bekommen, und ich drucke, merke ich, dass alle Leerzeichen davor die "/>" sind weg. Ich hoffe, ich habe meine Situation klarer gemacht. Danke für die Antwort. –
Wie drucken Sie den Inhalt Ihres "Dokuments"? –