Java 如何在JDOM中写入xml属性值?
这是xml文件。我想一次读写这个xmlJava 如何在JDOM中写入xml属性值?,java,dom,jdom,jdom-2,Java,Dom,Jdom,Jdom 2,这是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代码,用于读取和写入文件属性 String path="D
<quest ans="0">
<question file="image.png"><![CDATA[A quadrilateral must be a parallelogram if one pair of opposite sides is _____.]]></question>
</quest>
这是我的java代码,用于读取和写入文件属性
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);
}
}
}
}
String path=“D://test//N2086_set1.xml”;
文件结构xml=新文件(路径);
SAXBuilder saxb=新SAXBuilder();
Document Document=saxb.build(structureXml);
Element rootElement=document.getRootElement();
XMLOutputter xmlOutput=新的XMLOutputter();
List qestList=rootElement.getChildren();
对于(int i=0;i
输出为
<quest ans="0">
<question file="dasd0">question0</question>
</quest>
问题0
但是我想要
<quest ans="0">
<question file="dasd0"><![CDATA[question0]]></question>
</quest>
任务属性ans是更改的,问题属性文件也是更改的,但主要问题不是更改,而是更改,但没有CDATA,我希望问题带有CDATA。如果希望任务0包含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));
}
我不知道你想写什么。您是否可以编辑您的问题并添加一个部分,显示您目前向我们输出的内容,以及您想要的内容?