我有以下XML文件格式,我必须添加另一个 car 标记,其中 id 编号跟在上一个之后(在本例中为3):
<vehicles>
<cars>
<car id="1">
<name>ferrari</name>
</car>
<car id="2">
<name>lamborgini</name>
</car>
</cars>
</vehicles>
我已经找到了添加另一个元素的解决方案,它看起来像这样:
try {
File inputFile = new File(file);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("car");
Element car= doc.createElement("car");
car.setAttribute("id", "3");
Element node = doc.createElement("name");
node.setTextContent("audi");
car.appendChild(node);
nList.item(0).getParentNode().appendChild(car);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(inputFile);
transformer.transform(source, result);
} catch (Exception e) {
e.printStackTrace();
}
现在我有三个问题:
谢谢!
答案 0 :(得分:0)
由于您已将所有车辆节点作为nList中的列表,因此从最后一项遍历列表。
找到Element类型的节点后,将其停止。获取该节点的属性id值。
您的下一个节点ID将是您新发现的ID值的+1