java - 编辑 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 并保持原样?
谢谢。
解决方案
推荐阅读
- .net - 网络聊天机器人没有响应
- java - 在 Java 中调用继承的方法
- node.js - 状态参数无法使用 passport-google-oauth2 包节点 js
- python - 使用底部行中的多个值创建减去的数据框
- html - 按钮 CSS 上带有尖边的圆角
- c - 为什么变量总是打印0?
- apache - 使用 .htaccess 从 url 隐藏子目录
- pixi.js - 如何在pixijs中将图形转换为精灵
- javascript - JQuery将特定表行中的所有数据与约束相加
- unity3d - Oculus/Unity - OVRCameraRig 未设置为示例场景中的对象实例?