这是xml文件。我想一次读写这个xml。
<quest ans="0">
<question file="image.png"><![CDATA[A quadrilateral must be a parallelogram if one pair of opposite sides is _____.]]></question>
</quest>
这是我的java代码,用于读写attritube文件。
String path="D://test//N2086_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());
//write
ques.setText("question"+a);
}
}
}
}
输出
<quest ans="0">
<question file="dasd0">question0</question>
</quest>
但我想要
<quest ans="0">
<question file="dasd0"><![CDATA[question0]]></question>
</quest>
任务属性ans是更改而问题属性文件也是更改但主要问题是没有更改它但是没有CDATA我想和CDATA一起提问。
答案 0 :(得分:1)
如果你想让quest0附上CDATA标记,那么创建一个CDATA内容项:
更改部分:
if(ques.getName().equalsIgnoreCase("question")){
//read
System.out.println(ques.getTextTrim());
//write
ques.setText("question"+a);
}
看起来像:
if(ques.getName().equalsIgnoreCase("question")){
//read
System.out.println(ques.getTextTrim());
//write
ques.removeContent();
ques.addContent(new CDATA("question"+a));
}