如何在java中从XML中删除子元素?

如何在java中从XML中删除子元素?,java,xml,dom,jdom,jdom-2,Java,Xml,Dom,Jdom,Jdom 2,这是我的XML文件 <?xml version="1.0" encoding ="utf-8" ?> <mcss> <quest ans="1"> <question><![CDATA[Write 5x= 3y-1 as linear equation form.]]></question> <options> <option><

这是我的XML文件

<?xml version="1.0" encoding ="utf-8" ?>
<mcss>
    <quest ans="1"> 
        <question><![CDATA[Write 5x= 3y-1 as linear equation form.]]></question>
        <options>
            <option><![CDATA[5x-3y+1=0]]></option>
            <option><![CDATA[-5x-3y-1=0]]></option>
            <option><![CDATA[5x+3y+1=0]]></option>          
        </options>
        <explaination><![CDATA[Recall the linear equation in two variables form.]]></explaination>
    </quest>
</mcss>
我的输出是:

<?xml version="1.0" encoding ="utf-8" ?>
<mcss>
    <quest ans="1"> 
        <question><![CDATA[Write 5x= 3y-1 as linear equation form.]]></question>
        <options>

        </options>
        <explaination><![CDATA[Recall the linear equation in two variables form.]]></explaination>
    </quest>
</mcss>
但是我想要这样

<?xml version="1.0" encoding ="utf-8" ?>
<mcss>
    <quest ans="1"> 
        <question><![CDATA[Write 5x= 3y-1 as linear equation form.]]></question>
        <options>
            <option><![CDATA[5x-3y+1=0]]></option>
            <option><![CDATA[-5x-3y-1=0]]></option>

        </options>
        <explaination><![CDATA[Recall the linear equation in two variables form.]]></explaination>
    </quest>
</mcss>
只需关注循环并从我在代码中完成的最后一个索引-1进行迭代

只需关注循环并从我在代码中完成的最后一个索引-1进行迭代。

将仅删除具有给定名称的第一个子级。可以使用按索引删除子元素

if (ques.getName().equalsIgnoreCase("options")) {
    ques.removeContent(2);
}
或删除特定元素

if (ques.getName().equalsIgnoreCase("options")) {
    List<Element> options = ques.getChildren("option");
    if(options.size()>2) {
        Element optionToRemove = options.get(2);
        ques.removeContent(optionToRemove);
    }
}    
您说过要删除第二个选项,但在您的示例中,删除了第三个选项。我有点困惑,所以如果有必要,可以更改索引

将仅删除具有给定名称的第一个子项。可以使用按索引删除子元素

if (ques.getName().equalsIgnoreCase("options")) {
    ques.removeContent(2);
}
或删除特定元素

if (ques.getName().equalsIgnoreCase("options")) {
    List<Element> options = ques.getChildren("option");
    if(options.size()>2) {
        Element optionToRemove = options.get(2);
        ques.removeContent(optionToRemove);
    }
}    

您说过要删除第二个选项,但在您的示例中,删除了第三个选项。我有点困惑,所以如果有必要,可以更改索引

bt it remove only first option element.bt it remove only first option element.plz请看这个问题..@vijayk实际上又是同一个问题。将选项更改为quest并选择index 0.plz查看此问题。@vijayk实际上又是同一个问题。将选项更改为quest并选择索引0。