Java 使用JDOMAPI删除XML属性?
我有一个JDOM元素,如下所示 示例:XML(JDOM元素)Java 使用JDOMAPI删除XML属性?,java,xml,jdom,Java,Xml,Jdom,我有一个JDOM元素,如下所示 示例:XML(JDOM元素) 11111 60821894 938338789 60821894 938338789 我想转换为: <Details> <Uniqueno>11111</Uniqueno> <ROW num="1"> <Name>60821894</Name> <Age>938338789</Age> </ROW> <ROW nu
11111
60821894
938338789
60821894
938338789
我想转换为:
<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>
11111
60821894
938338789
60821894
938338789
注意:行集元素已删除
我想使用JDOMAPI删除该元素?您已经尝试了什么
Details
标记(文档根目录)行集
标记ROWSET
中的每个ROW
标记,调用节点上的detach()
方法,并append()
将此分离的节点添加到Details
标记中行集
标记// 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 2.0.x,您可以执行以下操作:
for (Element rowset : details.getChildren("ROWSET")) {
rowset.detach();
for (Content c : rowset.getContent()) {
details.addContent(c.detach());
}
}
如果您使用的是JDOM 1.x,则可以执行类似的操作,但需要更多的强制转换。…行集不是一个属性。这是一种元素。为了删除它,你必须先将它的所有内容保存到某个地方,以便稍后还原。感谢上面的帖子,但我仍然无法使用JDOM 1.x使用detach或remove分离(删除)。我为什么要在1.x版中删除它?你可以在1.x版中分离,你只需要有正确的强制转换。。。
for (Element rowset : details.getChildren("ROWSET")) {
rowset.detach();
for (Content c : rowset.getContent()) {
details.addContent(c.detach());
}
}