Android 如何修改XML节点值?
我是java应用程序的新开发人员。我想修改一个XML文件节点值。我使用了一个xml文件进行如下修改Android 如何修改XML节点值?,android,xml,xmlnode,Android,Xml,Xmlnode,我是java应用程序的新开发人员。我想修改一个XML文件节点值。我使用了一个xml文件进行如下修改 <staff id="2"> <firstname>yong</firstname> <lastname>mook kim</lastname> <nickname>mkyong</nickname> <salary>2000000</s
<staff id="2">
<firstname>yong</firstname>
<lastname>mook kim</lastname>
<nickname>mkyong</nickname>
<salary>2000000</salary>
<age>28</age>
</staff>
try{
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new File("/sdcard/myxml.xml"));
//Get the staff element by tag name directly
Node nodes = doc.getElementsByTagName("staff").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("salary".equals(node.getNodeName())){
node.setNodeValue("345375");
}
}
}
catch (Exception e) {
e.printStackTrace();
}
勇
木金
mkyong
2000000
28
在上面的xml中,我想将工资值更改为345375。对于这个修改,我编写了如下代码
<staff id="2">
<firstname>yong</firstname>
<lastname>mook kim</lastname>
<nickname>mkyong</nickname>
<salary>2000000</salary>
<age>28</age>
</staff>
try{
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new File("/sdcard/myxml.xml"));
//Get the staff element by tag name directly
Node nodes = doc.getElementsByTagName("staff").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("salary".equals(node.getNodeName())){
node.setNodeValue("345375");
}
}
}
catch (Exception e) {
e.printStackTrace();
}
试试看{
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docFactory.newDocumentBuilder();
documentdoc=docBuilder.parse(新文件(“/sdcard/myxml.xml”);
//直接按标记名获取staff元素
节点节点=doc.getElementsByTagName(“员工”)。项(0);
//循环staff子节点
NodeList list=nodes.getChildNodes();
对于(inti=0;i首先,您必须认识到node.setValue()
正在修改存储在内存中的表示形式。知道了这一点,您只需了解如何将该输出写入磁盘。例如,请参阅。对我来说似乎是正确的。您是否在终止程序之前保存了该文件?它可能会被丢弃。您能告诉我如何保存它吗?
node.Text = "Enter your value here"; //This will work