更新文档树中的XML属性值

时间:2015-01-08 19:28:24

标签: java xml dom

我不太清楚为什么我不能修改我的xml属性。下面的代码我用来从XML中读取属性。拉出属性没有任何问题。

        document = documentBuilder.parse(file);
        NodeList sessionNodelist = document.getElementsByTagName("session");
        if (sessionNodelist.getLength() > 0)
        {
            Element sessionElement = (Element) sessionNodelist.item(0);
            String timeout = sessionElement.getAttribute("timeout");
            String warning = sessionElement.getAttribute("warning");
        }

现在,当我去设置它们时,它不起作用,我不太清楚为什么。代码如下。它是我用来拉动atribles的完全相同的代码,但是我使用了带有两个参数的setAttribute而不是getAttribute。 setAttribute(String name,String Value)。

        document = documentBuilder.parse(file);
        NodeList sessionNodelist = document.getElementsByTagName("session");
        if (sessionNodelist.getLength() > 0)
        {
            Element sessionElement = (Element) sessionNodelist.item(0);
            sessionElement.setAttribute("timeout","12");
            sessionElement.setAttribute("warning", "10");
        }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要将文档树写回XML文件。有关如何将DOM树写入文件,请参阅this page

您可以使用javax.xml.transform.Transformer将对象写入文件,如下所示:

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(file);
transformer.transform(source, result);