从xml中删除子节点时不需要的换行符

时间:2012-10-16 08:49:29

标签: java xml newline

我遇到一个问题,当我从xml中删除子节点时,xml中会有一个空行。节点被正确删除但我不想要一个空行,我不知道那条空行来自哪里,因为我没有写xml,但是Javas Transformer正在为我做这个:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t;
DocumentBuilder db;
db = dbf.newDocumentBuilder();
Document doc = db.parse(myXml);

//get the node I want to remove
Node n = getMyNodeToRemove(doc);
n.getParentNode().removeChild(n);

//write the xml
t = tf.newTransformer();
DOMSource src = new DOMSource(doc);
StreamResult result = new StreamResult(xml);
t.transform(src, result);

我想编辑的xml实际上很简单,看起来像这样:

<parent>
  <childnode 1>
  <childnode i want to remove>
  <childnode 2>
  <childnode 3>
</parent>
删除孩子后,它看起来像这样:

<parent>
  <childnode 1>

  <childnode 2>
  <childnode 3>
</parent>

但我想要的是:

<parent>
  <childnode 1>
  <childnode 2>
  <childnode 3>
</parent>

是否有一些功能可以调用我失踪的父节点?或者是否有明确的xmls漂亮打印功能?

1 个答案:

答案 0 :(得分:0)

MadProgrammer:谢谢你的帮助。 我现在只删除空文本节点并且它可以工作 - 但是我不明白为什么它们首先被创建似乎对我来说很难解析。