在 Java 中更改 XML 文件中的一个值的最佳方法是什么?

2023-11-26

我有一个 XML 文件,并且我知道需要更改其值的节点名称。

节点名称是 ipAddress。

我可以使用 JDOM、获取文档、获取节点、更改值并写入它,或者我可以编写 XSLT 文件。

代码更改值来自 Java,所以我的问题是哪个选项更好? XML 文件的大小可以不同。

另一个与 XSLT 相关的问题:是否可以编写一个 XSLT 文件,这样我就不会列出 XML 中的所有节点,而只是指定如下if node == ipAddress,然后获取新值,我将如何应用 Java 的 XSLT 转换?

谢谢。


您可以使用标准 org.w3c.dom API 来获取 DOM。然后使用标准 javax.xml.xpath API 获取节点。然后使用 javax.xml.transform API 将其写回。

就像是:

import java.io.File;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.xpath.*;
import org.w3c.dom.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        Document document = dbf.newDocumentBuilder().parse(new File("input.xml"));

        XPathFactory xpf = XPathFactory.newInstance();
        XPath xpath = xpf.newXPath();
        XPathExpression expression = xpath.compile("//A/B[C/E/text()=13]");

        Node b13Node = (Node) expression.evaluate(document, XPathConstants.NODE);
        b13Node.getParentNode().removeChild(b13Node);

        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer t = tf.newTransformer();
        t.transform(new DOMSource(document), new StreamResult(System.out));
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中更改 XML 文件中的一个值的最佳方法是什么? 的相关文章

随机推荐