我将文本迭代地附加到XML元素,如下所示
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream(new File("./myXML.xml")));
Element element = doc.getDocumentElement();
NodeList node1 = doc.getElementsByTagName("name");
Element fn= (Element) node1.item(0);
Text text = doc.createTextNode(Content);
fn.appendChild(text);
printtoXML(doc);
我的printXML方法是使用TransformerFactory更新xml fn.setTextContent()方法在这里不起作用,因为在每次迭代中它都将旧文本设置为新文本。 我想迭代地追加Text,在我的下一次执行中,我想删除特定元素的旧文本内容并再次追加它。 我必须多次执行程序进行测试,我不想一次又一次地附加相同的文本....
请你帮我解决这个问题..
答案 0 :(得分:0)
这可能有效
Text text;
void callsomefunctionthousendtimes(){
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream(new File("./myXML.xml")));
text = doc.createTextNode("");
Element element = doc.getDocumentElement();
NodeList node1 = doc.getElementsByTagName("name");
Element fn= (Element) node1.item(0);
//TODO call your functionName(content) 1000 times here
fn.appendChild(text);
printtoXML(doc);
}
void functionName(String content){
text = text.replaceWholeText(text.getWholeText() + content);
}
添加奖金,只加载doc一次