2

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 の明示的なプリティプリント機能はありますか?

4

1 に答える 1

0

MadProgrammer: 助けてくれてありがとう。空のテキストノードを削除するだけで機能します-しかし、そもそもなぜそれらが作成されるのか理解できません。私には解析が悪いようです。

于 2012-10-16T12:16:28.567 に答える