2013-10-10 3 views
0

Я добавление текста в XML-элемент итеративно как следующийУдаление TextContents из 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 обновляет XML с помощью метода TransformerFactory fn.setTextContent() здесь не работает, Потому что на каждой итерации он устанавливает старый текст в новый текст. Я хочу добавить текст итеративно, и в следующем выполнении я хочу удалить старое текстовое содержимое конкретного элемента и добавить его снова. я должен выполнить программу много раз для моего тестирования и я не хочу, чтобы добавить один и тот же текст снова и снова ....

Не могли бы вы помочь мне решить эту проблему ..

ответ

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

добавил bonusus, только загрузить документ в один раз

+0

он работает так же, как setTextContent() method.At конец печатает только последнюю запись моего текста. – user2814979

+0

О, извините, я понял ваш вопрос неправильно, его трудно понять, можете ли вы объяснить «Я хочу добавить текст итеративно, и в следующем выполнении я хочу удалить старое текстовое содержимое конкретного элемента и добавить его снова» немного лучше? – epikfaal

+0

Одно исполнение моей программы содержит около 1000 итераций, поэтому одно исполнение добавляет 1000 строк текста в мой XML. При следующем выполнении программы я хотел бы удалить текстовое содержимое конкретного элемента xml и снова добавить текст. – user2814979

Смежные вопросы