不幸的是,我再次需要你的帮助。
正是我的问题是我无法添加
Element rootElement
到另一个
中的确切位置 Element el
。
例如
<Person>
<Name>Hansi</Name>
<Child name = "Susi">
<Child name = "Max">
<Age>13</Age>
</Child >
<Child name="Mimmi">
<Age>3</Age>
</Child >
</Child >
</Person>
现在我想为这个元素添加一个新元素(一个孩子)。
<Child name = "Max">
<Age>13</Age>
</Child >
所以我搜索了Element =“Max”的元素,但是我不知道如何添加这个元素一个新元素,所以根元素也包含它。
//filter = "Child"
Element addElement;
ElementFilter filter = new org.jdom2.filter.ElementFilter(element.getName());
for (Element c : rootElementOutput.getDescendants(filter)) {
if (c.getAttributeValue("name").equals(element.getAttributeValue("name"))) {
addElement = c;
// so funktioniert es leider nicht!!
//c.getChildren().add(aktNodeOutput);
}
}
这里是我使用的导入:
Java Code: Quelltext in neuem Fenster öffnen
import org.jdom2.input.SAXBuilder;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.filter.ElementFilter;
我希望你知道我的意思,我或多或少地解释了它。
提前感谢您的帮助
致以最诚挚的问候,
约翰
答案 0 :(得分:0)
我想你可以用完全相同的属性创建一个全新的Element,然后从root中删除旧的。
因此,遍历循环,找到正确的元素(名为“Max”的元素),并将其所有属性添加到新元素以及您想要作为其子元素的元素。 然后删除旧的“Max”并将新的“Max”添加到根目录。
有一种名为clone()的方法,可以更轻松地制作新的元素,而无需手动复制所有内容。
希望我有所帮助:)