【问题标题】:Fixing format of print statement固定打印语句的格式
【发布时间】:2014-09-07 08:04:12
【问题描述】:

我最近刚开始使用文档构建器来使用我的 XML 构建标题。这是我现在正在使用的以下代码:

    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    InputStream inputStream = new FileInputStream(new File("c:\\staff.xml"));
    org.w3c.dom.Document doc = documentBuilderFactory.newDocumentBuilder().parse(inputStream);
    StringWriter stw = new StringWriter();       
    Transformer serializer = TransformerFactory.newInstance().newTransformer();
    serializer.transform(new DOMSource(doc), new StreamResult(stw));
    String xmldata = (stw.toString());
    System.out.println(xmldata);

它可以很好地构建标题,但由于解析,它开始在同一行写入 XML 文件。有人可以告诉我如何更改此代码以将<company> 放到第二行吗? 这是我的印刷品:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><company>
    <comp id="512">
        <firstname>Brandon</firstname>
        <lastname>Liens</lastname>
        <empid>612</empid>
        <rqid>51265</rqid>
    </comp>
</company>

Staff.XML 文件:

<company>
    <comp id="512">
        <firstname>Brandon</firstname>
        <lastname>Nyberg</lastname>
        <empid>612</empid>
        <rqid>51265</rqid>
    </comp>
</company>

【问题讨论】:

  • 那么源文件有换行符吗?

标签: java xml eclipse string printing


【解决方案1】:

您不能在 XML 声明之后自动添加换行符,但如果您可以完全删除 XML 声明,则可以在 Transformer serializer = ... 行之后添加此行:

serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");

【讨论】:

  • xml文件上面不能有xml声明?就像一个简单的休息 \n 而不编辑人员文件?
  • 您可以手动打印出自己的 XML 声明,然后直接打印换行符,然后是使用OMIT_XML_DECLARATION 生成的文档。 :-)
  • 听起来很完美,克里斯。我非常感谢您的帮助,因为我一直在尝试使用包含的 XML 声明来做到这一点。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-30
  • 2021-05-03
  • 1970-01-01
  • 1970-01-01
  • 2013-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多