使用JDOM API删除XML属性?
我有一个像下面使用JDOM API删除XML属性?
例一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元素被删除
我想删除元素使用J DOM API?
你已经试过了什么?
- 查找
Details
标签(它是文档根) - 查找
ROWSET
标签 - 用于
ROWSET
呼叫detach()
方法的节点上和append()
此分离节点到Details
标签中的每个ROW
标签。 - 删除
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。
我可以获得一些示例代码吗? –
我添加了一些代码示例 – Alex
如果您使用JDOM 2.0.x的,你可以这样做:如果您使用JDOM 1.x中,你可以做类似的事情,但更多的石膏
for (Element rowset : details.getChildren("ROWSET")) {
rowset.detach();
for (Content c : rowset.getContent()) {
details.addContent(c.detach());
}
}
....
感谢上述发布,但我仍然无法使用JDOM 1.x使用detach或remove进行分离(删除)。如何在版本1.x中删除? –
你可以在1.x中分离,你只需要有正确的强制转换... http://jdom.org/docs/apidocs.1.1/org/jdom/Content.html#detach%28%29 – rolfl
行集不是一个属性。这是一个元素。为了将其删除,您必须首先将其所有内容保存到某处以便稍后恢复。 –