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(“你想设置的值”);这有帮助吗?如果不明确? –
我没有收到错误。是的,你说得对,只要地址相符,我想改变颜色或大小。我实际上有一个全局对象,其中包含我想检查的地址。如果我不检查它与对象然后我不能控制循环,因为它更新我不想更改的其他节点。 –