0

我有一个 JDOM 元素,如下所示

示例:XML(JDOM 元素)

<Details>
<Uniqueno>11111</Uniqueno>
<ROWSET name="Persons">
<ROW num="1">
<Name>60821894</Name>
<Age>938338789</Age>
</ROW>
<ROW num="2">
<Name>60821894</Name>
<Age>938338789</Age>
</ROW>
</ROWSET>
</Details>

我想像这样转换:

<Details>
<Uniqueno>11111</Uniqueno>

<ROW num="1">
<Name>60821894</Name>
<Age>938338789</Age>
</ROW>
<ROW num="2">
<Name>60821894</Name>
<Age>938338789</Age>
</ROW>

</Details>

注意:ROWSET 元素被移除

我想使用 JDOM API 删除元素?

4

2 回答 2

1

你已经尝试过什么?

  1. 查找Details标签(即文档根目录)
  2. 找到ROWSET标签
  3. 对于每个ROW标签,ROWSET调用detach()节点上的方法,并将append()这个分离的节点传递给Details标签。
  4. 删除ROWSET标签。

使用一些示例代码:

// 1
Element details = doc.getRootElement();
// 2
Element rowset = details.getChild("ROWSET");
// 3
for (Element row: rowset.getChildren()) {
    Element r = row.detach();
    details.appendChild(r);
}
// 4
details.removeChild(rowset);

未经测试,有关更多信息,请查看JDOM API

于 2012-05-09T11:06:31.387 回答
1

如果您使用的是 JDOM 2.0.x,您可以执行以下操作:

for (Element rowset : details.getChildren("ROWSET")) {
    rowset.detach();
    for (Content c : rowset.getContent()) {
         details.addContent(c.detach());
    }
}

如果您使用的是 JDOM 1.x,您可以做类似的事情,但需要更多的演员......

于 2012-05-09T11:20:15.823 回答