JDOM XML Element添加元素

时间:2014-03-16 12:16:14

标签: xml jdom

不幸的是,我再次需要你的帮助。

正是我的问题是我无法添加

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;

我希望你知道我的意思,我或多或少地解释了它。

提前感谢您的帮助

致以最诚挚的问候,

约翰

1 个答案:

答案 0 :(得分:0)

我想你可以用完全相同的属性创建一个全新的Element,然后从root中删除旧的。

因此,遍历循环,找到正确的元素(名为“Max”的元素),并将其所有属性添加到新元素以及您想要作为其子元素的元素。 然后删除旧的“Max”并将新的“Max”添加到根目录。

有一种名为clone()的方法,可以更轻松地制作新的元素,而无需手动复制所有内容。

希望我有所帮助:)