使用java删除xml标记

时间:2016-03-10 22:10:25

标签: java xml

我有一个非常简单的xml文件,我想创建一个简单的函数来从中删除标记。这是我的示例xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channels>
        <channel>
            <items>
                <item>
                    <title>Java Tutorials></title>
                    <link>http://www.tutorial-point.com/</link>
                </item>
                <item>
                    <title>Java Tutorials></title>
                    <link>http://www.javatpoint.com/</link>
                </item>
            </items>
        </channel>
    </channels>
</rss>

在我的Java程序中,只想调用一个方法从文件中删除两个标签。我不是很熟悉XML,但确实创建了一个读写器,但现在我在创建一个从我的文件中删除项目的方法时遇到了麻烦。

    // retrieve the element 
    Element element = (Element) doc.getElementsByTagName("channels").item(0);
    Element element2 = (Element) doc.getElementsByTagName("channel").item(0);
    // remove the specific node
    element.getParentNode().removeChild(element);
    element2.getParentNode().removeChild(element2);

当我在Java中使用上面的代码时,它删除了所有标签,但我期望结果如下:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <items>
        <item>
            <title>Java Tutorials></title>
            <link>http://www.tutorial-point.com/</link>
        </item>
        <item>
            <title>Java Tutorials></title>
            <link>http://www.javatpoint.com/</link>
        </item>
    </items>
</rss>

你能建议吗?

1 个答案:

答案 0 :(得分:0)

试试这个。

    Element rss = (Element) doc.getElementsByTagName("rss").item(0);
    Element channels = (Element) doc.getElementsByTagName("channels").item(0);
    Element items = (Element) doc.getElementsByTagName("items").item(0);
    rss.appendChild(items);
    rss.removeChild(channels);