在附加文本之前删除XML元素的TextContents

时间:2013-10-10 07:59:36

标签: java xml domparser

我将文本迭代地附加到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,在我的下一次执行中,我想删除特定元素的旧文本内容并再次追加它。 我必须多次执行程序进行测试,我不想一次又一次地附加相同的文本....

请你帮我解决这个问题..

1 个答案:

答案 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一次