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,......)
我有一个分析特定字符串的方法,应该使用 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,......)