0

我正在迭代地将文本附加到 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 fn.setTextContent() 方法更新 xml 在这里不起作用,因为在每次迭代中它将旧文本设置为新文本。我想迭代地附加文本,在我的下一次执行中,我想删除特定元素的旧文本内容并再次附加它。我必须多次执行该程序以进行测试,并且我不想一次又一次地附加相同的文本....

你能帮我解决这个问题吗..

4

1 回答 1

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);
    }

添加奖金,只加载一次文档

于 2013-10-10T08:13:33.777 回答