首页 > 解决方案 > 编辑 XML 并保存而不更改标签顺序

问题描述

我做了这个代码:

for (final File file : MINE.listFiles()) {
    final Document doc = DocumentBuilderFactory
        .newInstance()
        .newDocumentBuilder()
        .parse(new InputSource(file.getAbsolutePath()));

    for (Node node = doc.getFirstChild().getFirstChild(); node != null; node = node.getNextSibling()) {
        if ("skill".equalsIgnoreCase(node.getNodeName())) {
            if (LIST.contains(Integer.parseInt(node.getAttributes().getNamedItem("id").getNodeValue()))) {
                for (Node sub_node = node.getFirstChild(); sub_node != null; sub_node = sub_node.getNextSibling()) {
                    if ("set".equalsIgnoreCase(sub_node.getNodeName())) {
                        final NamedNodeMap Attr = sub_node.getAttributes();

                        if (Attr.getNamedItem("name").getNodeValue().equalsIgnoreCase("targetType")) {
                            Attr.getNamedItem("val").setNodeValue("ENEMY_ONLY");
                            System.out.println("Edit skill: " + node.getAttributes().getNamedItem("name").getNodeValue());
                        }
                    }
                }
            }
        }
    }

    final Transformer xformer = TransformerFactory.newInstance().newTransformer();
    xformer.transform(new DOMSource(doc), new StreamResult(file));
}

但问题是它改变了我的 XML 的标签顺序。我搜索了不同的方法,但我不知道该怎么做。有没有其他方法可以避免格式化 XML 并保持原样?

谢谢。

标签: javaxml

解决方案


推荐阅读