我有一个从网站具有多行文本节点像这样获取的XML文件的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和其他论坛上有足够的资源来解释如何正确缩进)。
我的问题是不是缩进。这只是关于节点文本中的换行符。我不关心正确的缩进。 – wullxz 2013-03-12 01:54:46
您的代码适用于我,使用Java 1.7.0_17。它用保留的换行符打印文本内容。 – VGR 2013-03-12 02:16:51
奇怪。我使用OpenJDK 1.7.0_09在Linux上进行了测试。也许它是平台依赖的?你的操作系统是什么? – wullxz 2013-03-12 02:51:31