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