JDOM setText() 不工作

JDOM setText() Not Working

我有一个分析特定字符串的方法,应该使用 JDOM 的 setText() 方法更改该字符串。但是当我在程序完成后查看文档时,String 永远不会改变:

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

永远行不通。有人可以告诉我我做错了什么吗?

我明白了。您正在更新 a.getChild("LINE") 元素,但正在将文档写入文件。

如何解决?

更新 document 子对象,例如 document.getChild("LINE")(或)将元素写入文件,例如 newDoc.output(a,......)