我有一个带有这样标签的XML字符串:
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
请注意&#34; /&gt;&#34;之前的空格。由于我的规格,我必须保留这个空格,但每次解析字符串时,解析器都会删除该空格。
这是我的代码(&#34;行&#34;是XML字符串):
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);
我尝试更改解析器(Sax而不是javax.xml.parser),但问题仍然存在。 有解决方案吗谢谢。
答案 0 :(得分:0)
我看到两种可能性:
浏览XML树(在document
中)并将结果写入字符串行。
使用您拥有的打印方法,然后执行replaceAll替换“/&gt;”的每次出现通过“/&gt;”,例如
String result = result.replaceAll("\\/\\>", " />");