【问题标题】:Java DOM xml edition issue [duplicate]Java DOM xml版本问题[重复]
【发布时间】:2017-10-05 10:34:53
【问题描述】:

我正在为一个学校项目开发一个游戏,我想将游戏的状态保存在一个 XML 文件中。

目前我能够读取 XML 文件中的信息,但我无法更新它,我不知道为什么......

这是 XML:

<story>
  <level id="1">
    <text>Some info about the level...</text>
    <finished>false</finished>
    <nbsteps>0</nbsteps>
  </level>
</story>

当玩家完成这一关卡时,我想将&lt;finished&gt;false&lt;/finished&gt; 编辑为&lt;finished&gt;true&lt;/finished&gt;

目前我已经编写了代码来编辑它,但它实际上并没有编辑 xml...

    public void updateSave(){
    try {

        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(this.xmlSave);

        Element racine = doc.getDocumentElement();
        NodeList levelList = doc.getElementsByTagName("level");
        Element niveau = (Element) levelList.item(this.levelId);
        niveau.getElementsByTagName("finished").item(0).setTextContent("true");


        }
        catch (ParserConfigurationException | SAXException | IOException | DOMException e) {}
    }

感谢您的解释,祝您有愉快的一天!

【问题讨论】:

标签: java xml dom


【解决方案1】:

好的谢谢我只是忘了保存^^"

我的最终代码,运行良好的是

    public void updateSave() throws TransformerConfigurationException, TransformerException{
    try {

        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(this.xmlSave);

        Element racine = doc.getDocumentElement();
        NodeList levelList = doc.getElementsByTagName("level");
        Element niveau = (Element) levelList.item(this.node.id);
        niveau.getElementsByTagName("finished").item(0).setTextContent("true");

        Transformer transformer = TransformerFactory.newInstance().newTransformer();
        Result output = new StreamResult(this.xmlSave);

        Source input = new DOMSource(doc);
        transformer.transform(input, output);
        }
        catch (ParserConfigurationException | SAXException | IOException | DOMException e) {}
    }

【讨论】:

    猜你喜欢
    • 2021-08-29
    • 2011-09-16
    • 2011-02-06
    • 2012-07-03
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多