在res / raw文件夹(Android)中的xml文件中编辑xml节点值

时间:2016-03-10 07:39:22

标签: android xml domparser

我是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更新... ...提前谢谢。

0 个答案:

没有答案