【发布时间】:2013-02-27 09:47:05
【问题描述】:
我有一个 Java 应用程序,它从一个网站上获取一个 xml 文件,该网站有一个像这样的多行文本节点:
<root>
<node>info</node>
<mlnode>some
multi
line
text</mlnode>
</root>
我的代码目前如下所示:
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(xml)));
NodeList nList = doc.getElementsByTagName("mlnode");
Node nNode = nList.item(0);
System.out.println(nNode.getTextContent());
遗憾的是,这段代码将我的多行内容放在了一行中:somemultilinetext。我想保留换行符。而且我希望在所有操作系统(主要是 windows 和 linux)上保留换行符。
我该怎么做?
编辑:这个问题不是关于正确缩进的。这只是关于在节点的内容中保留换行符。将换行符保留在原处很重要,因为该节点的内容是配置文件的一部分,必须用换行符分隔。
我不关心正确的缩进(如果我这样做了:我知道在 SO 和其他论坛上有足够的资源来解释如何正确缩进)。
【问题讨论】:
-
我的问题不是缩进。这只是关于节点文本中的换行符。我不在乎正确的缩进。
-
您的代码适用于我,使用 Java 1.7.0_17。它打印保留换行符的文本内容。
-
奇怪。我使用 OpenJDK 1.7.0_09 在 Linux 上进行了测试。也许它取决于平台?你的操作系统是什么?
-
在带有 OpenJDK 1.7.0_04-ea 的 Mac OSX 10.7 上运行良好。你在使用第三方 DOM 解析器吗?
-
我正在使用 org.w3c.dom 中的类。