gpt4 book ai didi

java - 将节点添加到节点 XML dom4j

转载 作者:行者123 更新时间:2023-12-01 23:58:44 26 4
gpt4 key购买 nike

在 DOM4J 和 XML 中如何向现有节点添加节点?

如果我遵循这个示例,如果我已经有一个元素,它会非常简单并且效果很好。

Element root = doc.getRootElement();
Element someElement = root.addElement("some");
Element anotherElement = someElement.addElement("another");

等等。如果我有一个 Element 对象就很容易。

但是一旦我丢失了一个引用或者正在加载一个 xml 并且没有从头开始创建一个,我就无法理解如何在我想要的位置准确添加节点/元素。

所以具体的问题是:给定一个文档和其中的特定元素,如何在其下面添加元素?我必须遍历整个文档吗? Xpath 我只能返回没有 .addElement 的节点,并且无法将其转换为元素。我只是被难住了,除了添加 ID=?对于每个节点,我只是不知道如何将某些东西准确地放在我想要的地方。任何帮助或指导将不胜感激。

最佳答案

您可以迭代并检查所需的节点并向其添加新创建的节点,也可以使用 xpath 表达式来获取特定节点并向其添加新节点。

迭代:

    public void iterateNodes() {
SAXReader reader = new SAXReader();
Document document = reader.read("yourxml.xml");
Element root = document.getRootElement();
for ( Iterator i = root.elementIterator(); i.hasNext(); ){
Element row = (Element) i.next();
Iterator itr = row.elementIterator();
while(itr.hasNext()) {
Element child = (Element) itr.next();
String name = child.getQualifiedName();
if(name.equals("requiredName") {
//create node and add it to child.
}
}
}
}

XPath:

public void addNodeUsingXpath() {
SAXReader reader = new SAXReader();
Document document = reader.read("yourxml.xml");
String xpathExpression = "yourxpath";
List<Node> nodes = document.selectNodes(xpathExpression);
// nodes will have all the child nodes under your Xpath.
for (Node node : nodes) {
//get the required node and add your new node to specific node.
if(node instanceof Element) {
Element e = (Element) node;
e.addElement("newElement");
....
}
}
}

关于java - 将节点添加到节点 XML dom4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237353/

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