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 を使用して xml を更新しています fn.setTextContent() メソッドはここでは機能しません。反復ごとに古いテキストが新しいテキストに設定されるためです。Text を繰り返し追加したいのですが、次の実行では、特定の要素の古いテキスト コンテンツを削除して再度追加したいと考えています。テストのためにプログラムを何度も実行する必要があり、同じテキストを何度も追加したくありません....

この問題を解決するのを手伝ってくれませんか..

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 に答える