这是我的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中删除第二个选项
我的java代码从我的选项元素中删除所有选项。使用选项。getParentElement()。removeChild(“期权”)
try {
String path="D://test//n2027_set1.xml";
File structureXml = new File(path);
SAXBuilder saxb = new SAXBuilder();
Document document = saxb.build(structureXml);
Element rootElement = document.getRootElement();
XMLOutputter xmlOutput = new XMLOutputter();
List qestList = rootElement.getChildren();
for (int i = 0; i < qestList.size(); i++) {
Element quesList = (Element) qestList.get(i);
System.out.println(quesList.getAttributeValue("ans"));
//change ans field
quesList.setAttribute("ans", ""+i);
List qList = quesList.getChildren();
for(int a=0;a< qList.size();a++) {
Element ques =(Element) qList.get(a);
if(ques.getAttributeValue("file")!=null){
//read xml
System.out.println(ques.getAttributeValue("file"));
//write xml attribute
//System.out.println(ques.setAttribute("file","dasd"+a));
}
if(ques.getName().equalsIgnoreCase("question")){
//read
System.out.println(ques.getTextTrim());
ques.addContent(new CDATA(ques.getTextTrim()));
}
if (ques.getName().equalsIgnoreCase("options")) {
List optList = ques.getChildren();
for (int k = 0; k < optList.size(); k++) {
Element option = (Element) optList.get(k);
if(option.getName().equalsIgnoreCase("option")){
//read
option.getParentElement().removeChild("option");
}
}
}
if(ques.getName().equalsIgnoreCase("explaination")){
ques.removeContent();
ques.addContent(new CDATA("explaination"+a));
}
}
}
FileOutputStream file=new FileOutputStream(path);
xmlOutput.output(document, file);
}catch (JDOMException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
我的输出是:
<?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>
if (ques.getName().equalsIgnoreCase("options")) {
List optList = ques.getChildren();
for (int k = optList.size()-1; k < optList.size(); k++) {
Element option = (Element) optList.get(k);
if(option.getName().equalsIgnoreCase("option")){
//read
option.getParentElement().removeChild("option");
}
}
}
只需关注循环并从我在代码中完成的最后一个索引1进行迭代。
要素removeChild将仅删除具有给定名称的第一个子级。可以使用元素。removeContent(int index)按索引删除子元素
if (ques.getName().equalsIgnoreCase("options")) {
ques.removeContent(2);
}
或Element.removeContent(内容内容)删除特定元素。
if (ques.getName().equalsIgnoreCase("options")) {
List<Element> options = ques.getChildren("option");
if(options.size()>2) {
Element optionToRemove = options.get(2);
ques.removeContent(optionToRemove);
}
}
您说过要删除第二个选项,但在您的示例中,删除了第三个选项。我有点困惑,所以如果必要,请更改索引。
我正在尝试从xml文件中删除元素和子元素。特别是附加名称Testlog。 首先这是我的xml文件的外观。 以下是我的java代码: 我想删除此appender的所有内容,但引发了一个异常。可能是我错过了一些简单的东西。 有什么想法吗?
假设我的下一个XML来自Oracle队列到驼峰路径: 我想在我的路线中处理这个交换主体,并删除一些元素,例如,然后继续处理主体: 最简单的方法是什么?当然,可以通过声明一些bean或Camel处理器来完成,该处理器将主体作为XML封送/解封送并返回。 但是我想知道骆驼是否有另一种方法?
问题内容: 我陷入了XML和Python的困境。任务很简单,但到目前为止我还无法解决,花了那么长时间。我是来这里咨询如何用几行解决它的。 感谢您对遍历树的任何帮助。我总是以太多或太少的元素结束。元素可以无限制地嵌套。给出的例子只是一个例子。我会接受任何解决方案,而不是对dom,minidom,sax等等不挑剔。 我有一个与此类似的XML文件: 我需要的是-解析XML并编写一个新文件。新文件应包含给
问题内容: 我已经从Excel数据库中生成了一个xml文件,它自动包含一个名为“ ” 的元素。为了使新文件符合我的需求,我想使用java删除此元素。这是xml内容: 我编写了一个代码来读取(使用缓冲的读取器)并将内容写入新文件中,并在以下情况下使用该条件: 但这不起作用 问题答案: 我个人建议使用适当的XML解析器(如Java DOM)来检查和删除您的节点,而不是将XML作为原始对象处理(糟糕)。
我想在创建以下2d阵列后删除一个元素。它应该是数组的最后一个元素。
我想要一个数组列表,并限制元素删除。我该怎么做?