用Dom方式为某xml文件某节点插入一个属性且赋值

public static void insertKeyAndValue(String path,String note,String key,String value) {
    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();

        File file = new File(path);
        Document document = builder.parse(file);
        document.normalize();
        //循环所有的package节点
        for (int i = 0; i < document.getElementsByTagName("package").getLength(); i++) {
            Element mPackageDoc = (Element) document.getElementsByTagName("package").item(i);
            //判断package节点的name属性值是否是指定值
            if (note.equals(mPackageDoc.getAttribute("name"))) {
                //给指定package节点添加一个key的属性且赋值
                mPackageDoc.setAttribute(key,value);
            }
        }

        TransformerFactory tFactory = TransformerFactory.newInstance();
        Transformer transformer = tFactory.newTransformer();
        DOMSource source = new DOMSource(document);
        StreamResult result = new StreamResult(new File(path));
        transformer.transform(source, result);
        Log.d("TimerV", "modify ---------OK");
    } catch (IOException e) {
        e.printStackTrace();
    } catch (TransformerConfigurationException e) {
        e.printStackTrace();
    } catch (ParserConfigurationException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (TransformerException e) {
        e.printStackTrace();
    }
}

猜你喜欢

转载自blog.csdn.net/peachs885090/article/details/81136059