读取和更改XML节点的值(Android)

时间:2015-02-26 18:03:06

标签: android xml google-maps

我要尝试解释我的问题。 我有一个Android应用程序,带有地图和标记。每次按下标记时,我都会获得XML文件(原始文件夹中设置的本地文件)的信息,例如name和visited。我使用DOM,因为这是我所知道的最简单方法。

我想要做的是,每次用户点击访问复选框按钮时,该特定标记的访问节点的值都会发生变化。 以下是xml文件的示例:

<marker id="00001" name="Marker1">   
      <visited>Yes</visited>
</marker>

现在我需要一种方法来获取原始文件夹的de Path,用于xml文件。我尝试使用接收标记信息的方法,元素信息(已搜索的xml元素)和newValue:

public void setNodeValue(String tag, Element element, String newvalue) {
        try {
StreamResult result = new StreamResult(new File("file:///android_asset/file.xml"));
            NodeList nodeList = element.getElementsByTagName(tag).item(0)
                    .getChildNodes();
            Node node = (Node) nodeList.item(0);                
            node.setTextContent(newvalue);

            Transformer xformer = TransformerFactory.newInstance().newTransformer();
            xformer.transform(new DOMSource(getDom()), result);
} catch ....{
....
}

getDom方法......

private Document getDom() {
        Document dom = null;
        try {
            InputStream raw = cont.getApplicationContext().getAssets()
                    .open("file.xml");
            DocumentBuilderFactory builderFactory = DocumentBuilderFactory
                    .newInstance();
            DocumentBuilder builder = null;
            builder = builderFactory.newDocumentBuilder();
            dom = builder.parse(raw);
        } catch ....{
         }.......
        return dom;

    }

如果有人可以提供帮助,请! :)

0 个答案:

没有答案