【发布时间】:2011-07-07 10:35:19
【问题描述】:
我想修改xml标签值的文本我使用了如下的xml
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
在这里,我想更改从名称 Jani 为 prasad。如何使用 java 代码更改它
我写了一段java代码如下
try{
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new File("/mnt/sdcard/one.xml"));
//Get the staff element by tag name directly
Node nodes = doc.getElementsByTagName("note").item(0);
//loop the staff child node
NodeList list = nodes.getChildNodes();
for (int i =0; i<list.getLength();i++){
Node node = list.item(i);
//get the salary element, and update the value
if("from".equals(nodes.getNodeName())){
node.setNodeValue("prasad");
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("/mnt/sdcard/one.xml"));
transformer.transform(source, result);
}
}
}
catch (Exception e) {
e.printStackTrace();
}
【问题讨论】:
-
你的代码有什么问题?此外,如果您更频繁地更新名称和其他标签,SQLiteDatabase 将更适合这项工作。
-
@prasad.gai 嗨,您好,很抱歉打扰您.. 只是,我有类似的问题,想请教您并提出建议。我的问题是,尝试上面的代码后,节点在SD卡中的xml文件的值没有改变。