Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JDOMAPI删除XML属性?_Java_Xml_Jdom - Fatal编程技术网

Java 使用JDOMAPI删除XML属性?

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

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

示例:XML(JDOM元素)


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());
        }
    }