程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Java 8中的漂亮打印XML大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Java 8中的漂亮打印XML?

开发过程中遇到Java 8中的漂亮打印XML的问题如何解决?下面主要结合日常开发的经验,给出你关于Java 8中的漂亮打印XML的解决方法建议,希望对你解决Java 8中的漂亮打印XML有所启发或帮助;

我想这个问题与原始文件中的 (即只有空白的文本节点)有关。您应该尝试在解析后使用以下代码以编程方式删除它们。如果不删除它们,transformer它将保留它们。

@H_772_6@original.getdocumentElement().normalize(); XPathExpression xpath = XPathFactory.newInstance().newXPath().compile("//text()[normalize-space(.) = '']"); NodeList blankTextNodes = (NodeList) xpath.evaluate(original, XPathConstants.NODESET); for (int i = 0; i < blankTextNodes.getLength(); i++) { blankTextNodes.item(i).getparentNode().removeChild(blankTextNodes.item(i)); }

解决方法

我有一个存储为DOM文档的XML文件,我想将其漂亮地打印到控制台,最好不使用外部库。
我知道这个问题已经在这个网站上问了很多遍,但是以前的答案都没有对我有用。 我正在使用Java
8,所以也许这是我的代码与以前的问题有所不同的地方?我也尝试过使用从Web上找到的代码手动设置变压器,但是这只是引起了not found错误。

这是我的代码,当前仅在控制台左侧的新行上输出每个xml元素。

@H_772_6@import java.io.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMsource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.xml.sax.Inputsource; import org.xml.sax.SAXException; public class Test { public Test(){ try { //java.lang.System.setProperty("javax.xml.transform.TransformerFactory","org.apache.xalan.xsltc.trax.TransformerFactoryImpl"); DocumentBuilderFactory dbFactory; DocumentBuilder dBuilder; Document original = null; try { dbFactory = DocumentBuilderFactory.newInstance(); dBuilder = dbFactory.newDocumentBuilder(); original = dBuilder.parse(new Inputsource(new InputStreamReader(new FileInputStream("xml Store - Copy.xml")))); } catch (SAXException | IOException | ParserConfigurationException E) { e.printStackTrace(); } StringWriter StringWriter = new StringWriter(); StreamResult xmlOutput = new StreamResult(StringWriter); TransformerFactory tf = TransformerFactory.newInstance(); //tf.setAttribute("indent-number",2); Transformer transformer = tf.newTransformer(); transformer.setOutputProperty(OutputKeys.METHOD,"xml"); transformer.setOutputProperty("{@R_450_10107@://xml.apache.org/xslt}indent-amount","4"); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,"no"); transformer.setOutputProperty(OutputKeys.INDENT,"yes"); transformer.setOutputProperty(OutputKeys.ENCODING,"UTF-8"); transformer.transform(new DOMsource(original),xmlOutput); java.lang.System.out.println(xmlOutput.getWriter().toString()); } catch (Exception eX) { throw new RuntimeException("Error converTing to String",eX); } } public static void main(String[] args){ new Test(); } }
@H_675_30@

大佬总结

以上是大佬教程为你收集整理的Java 8中的漂亮打印XML全部内容,希望文章能够帮你解决Java 8中的漂亮打印XML所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。