У меня есть метод, который анализирует конкретную строку и должен изменить эту строку, используя метод setText() JDOM. Но когда я смотрю на документ после окончания программы, струнный никогда не меняется:JDOM setText() Не работает
public void findVirtue(String word, Element a) throws JDOMException,
IOException, TransformerFactoryConfigurationError,
TransformerException {
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(xml);
Pattern p = Pattern.compile("(?i)\\bvirtue('?s)?\\b",
Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(word);
List<String> virtue = new ArrayList<String>();
// Need to Increment a counter
while (m.find()) {
virtue.add(m.group());
log("FOUND : " + m.group());
log("REPLACEMENT : " + m.replaceAll("Ryan"));
a.getChild("LINE").setText(m.replaceAll("Ryan"));
XMLOutputter newDoc = new XMLOutputter();
newDoc.setFormat(Format.getPrettyFormat());
newDoc.output(document, new FileWriter(
"C:\\Users\\Ryan\\workspace\\Tragic\\result" + xml.getName()));
//counter();
}
}
Теперь я знаю, что это не проблема с регулярным выражением, так как я могу войти вывод в другой файл. Но когда я использую:
a.getChild("LINE").setText(m.replaceAll("Ryan"));
Он никогда не работает. Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?
Я сделал это .. это не сделало разницу .. – ryekayo
я вижу проблему. Вы обновляете элемент A.get ...., но записываете «документ» в файл. Вместо обновления вызова getChild в «документе» и записи документа в файл. – kosa
@ Nambari, ooh Im рад, что вы это поняли? Можете ли вы дать ответ о том, что именно я должен делать. Извините, я все еще изучаю, как использовать методы JDOM ... – ryekayo