0
我可以在我的方法中添加什麼行代碼,只會修改標記名「location」,因爲它只包含名爲「address?」的節點下的特定信息。所以,如果我更新「顏色」或「大小」,那麼我可以告訴nodeList:「只有當它包含123 Main Street in」地址「時,才更改這些值。我試過所有類型的」等等「。 。我用object.getAddress作爲我的變量的對象,我要覈對 XML有50項:如何從java中的特定XML元素中檢索
<location>
<address>123 Main Street</address>
<color>red</color>
<size>large</size>
</location>
public void changeValue(Document doc, String oldValue, String NewValue) throws Exception {
Element root = doc.getDocumentElement();
NodeList childNodes = root.getElementsByTagName("location");
for (int i = 0; i < childNodes.getLength(); i++) {
NodeList subChildNodes = childNodes.item(i).getChildNodes();
for (int j = 0; j < subChildNodes.getLength(); j++) {
try {
if (subChildNodes.item(j).getTextContent().equals(oldValue)) {
subChildNodes.item(j).setTextContent(NewValue);
}
} catch (Exception e) {
}
}
}
File file = new File("XMLDatabase.xml");
save(file, doc);
}
哪裏是你,你得到一個錯誤!不能用newValue替換oldValue嗎?請解釋一下嗎? –
如果我沒有錯,你想改變顏色或者大小,如果你可以匹配地址。如果這是你想要的if循環嘗試初始化一個局部的int變量併爲其賦值j,並簡單地將新的顏色和大小的值設置爲subChildNodes.item(local int + 2).setTextContent(「你想設置的值」);這有幫助嗎?如果不明確? –
我沒有收到錯誤。是的,你說得對,只要地址相符,我想改變顏色或大小。我實際上有一個全局對象,其中包含我想檢查的地址。如果我不檢查它與對象然後我不能控制循環,因爲它更新我不想更改的其他節點。 –