我是Android新手。我一直在尝试使用DomParser更新我的xml文件的节点值。我一直在使用资产文件夹xml文件来阅读。我意识到资产文件夹文件无法更新,然后创建了一个原始文件夹来保存我的xml文件。我已经推荐了很多人提供的很多答案很长一段时间但没有任何工作!
我的.xml文件的部分
<events>
<type>ABC</type>
<time>1:30-2:45pm</time>
<day>XYX</day>
<note>123</note>
</events>
我一直在尝试代码
try{
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
InputStream is = this.getResources().openRawResource(temp1);
Document doc = docBuilder.parse(is);
if (null != doc.getDocumentElement()){
v1.setText("\n\nhiii888",doc.getDocumentElement()); ("HERE")
RelativeLayout layout = (RelativeLayout) findViewById(R.id.content);
layout.addView(v1);
}
Node nodes = doc.getElementsByTagName("events").item(0);
NodeList list = nodes.getChildNodes();
for (int i =0; i<list.getLength();i++){
Node node = list.item(i);
if("type".equals(nodes.getNodeName())){
node.setNodeValue("ABC123");
}
}
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("temp1.xml"));
transformer.transform(source, result);
}
我的应用程序显示在执行此操作时已停止运行,因此我将带有textview和相对布局(“提及为”HERE“)的 if block 放入哪里直到代码工作正常.. getDocumentElement()确实返回一个值,因此它在textview中显示为
hiii888org.apache.harmony.xml.dom.ElementImpl@e58aa2f
我不知道为什么会这样。我也使用Text来进行类型转换并检索结果,并且.toString()函数期望类型转换可以解决问题。似乎没有工作......现在已经尝试了Xml更新数天。 ..希望看到可以解决我的问题的答案,除了已经存在的xml更新... ...提前谢谢。