gpt4 book ai didi

java - 将 xml 元素移动到 xml 文件中的新位置

转载 作者:行者123 更新时间:2023-11-29 09:14:44 26 4
gpt4 key购买 nike

我想将特定的 xml 元素移动到列表的顶部。

xml 输入:

<?xml version="1.0" encoding="UTF-8"?>
<Values>
<Elem Value="1"/>
<Elem Value="2"/>
<Elem Value="3"/>
</Values>

期望的结果:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Values>
<Elem Value="2"/>
<Elem Value="1"/>
<Elem Value="3"/>
</Values>

这是我的代码:

String valueToFind = "2";

File mFile = new File("C:\\xml.xml");
DocumentBuilder builder;
try {
builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

Document document = builder.parse(mFile);

NodeList nodeList = document.getElementsByTagName("Elem");
Element element = null;

for (int i = 0; i < nodeList.getLength(); i++) {
element = (Element) nodeList.item(i);
String value = element.getAttribute("Value");

if (valueToFind.equals(value))
break;
else
element = null;
}

if (element != null) {
document.getDocumentElement().removeChild(element);
document.getDocumentElement().insertBefore(element, nodeList.item(0));
}

Source source = new DOMSource(document);
Result result = new StreamResult(mFile.getPath());

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
transformer.transform(source, result);
}

但结果不正确:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Values>
<Elem Value="2"/>
<Elem Value="1"/>

<Elem Value="3"/>
</Values>

为什么我得到空行?!

最佳答案

原始 XML 文件包含带空格的文本节点。您的代码仅删除 Elem 节点并将其插入列表顶部,但保留包含换行符的文本节点。

关于java - 将 xml 元素移动到 xml 文件中的新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10223063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com