я хотел бы изменить текст значения тега 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();
}
В вашем коде есть проблема: "Jani" - это текстовый узел с родительским элементом "from". Поэтому вы должны изменить значение текстового узла.
...
for (int i =0; i<list.getLength();i++) {
Node node = list.item(i);
//get the salary element, and update the value
if("from".equals(node.getNodeName())){
Text text = (Text) ((Element) node).getChildNodes().item(0);
text.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);
...
И я думаю, что RegExp будет намного проще для этой задачи
"your xml as string".replaceAll("<from>.*?</from>", "<from>prasad</from>");
Существует несколько различных примеров.
Написание XML на Android Это, кажется, лучшие образцы.
Другие хиты: как переписать или изменить XML в версии Android версии 2.1