Java プログラムから XML ノードからノードを削除しようとすると、奇妙な問題が発生します。代替ノードを削除しています。新しいノードを挿入する前に、既存のノードを削除する必要があります。私のxmlファイルは次のとおりです。
<?xml version="1.0" encoding="windows-1252" ?>
<chart>
<categories>
<category label="3 seconds"/>
<category label="6 seconds"/>
<category label="9 seconds"/>
<category label="12 seconds"/>
</categories>
</chart>
私のJavaプログラムは次のとおりです。
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filePath);
Node categories = doc.getElementsByTagName("categories").item(0);
NodeList categorieslist = categories.getChildNodes();
// if exists delete old data the insert new data.
for (int c = 0; c < categorieslist.getLength(); c++) {
Node node = categorieslist.item(c);
categories.removeChild(node);
}
for(int i=1;i<20;i++){
Element category = doc.createElement("category");
category.setAttribute("label",3*i+" seconds");
categories.appendChild(category);
}
このコードは、理由がわからない代替ノードを削除しています。結果の XML は次のように表示されます。
<categories>
<category label="6 seconds"/>
<category label="12 seconds"/>
<category label="3 seconds"/>
<category label="6 seconds"/>
<category label="9 seconds"/>
.....
.....
</categories>