使用Regex查找xml元素并替换其值

时间:2013-04-18 12:55:31

标签: java xml regex

据我所知,我不应该使用Regex来更新xml。但是根据要求,我必须找到基于正则表达式的元素并替换它的值。
我正在记录调度程序servlet中的所有HTTP请求并将其保存到文件中。在重放时我可能需要更新其中一个xml。
我不想将该特定的xml转换为Document,解析并更新它然后将其转换回String。这就是我想用String格式编辑xml的原因。
元素名称及其新值将是我的输入。 所以

public void findAndReplace(String xml, String elementName, String newValue)
{
 String regex = '/<'+elementName+'></'+elementName+'>';
 String updatedElement = '/<'+elementName+'>'+newValue+'</'+elementName+'>'

 String updatedXML = xml.replaceFirst(regex, updatedElement);
}

1 个答案:

答案 0 :(得分:1)

您无需创建Document即可更改XML文档。您可以非常轻松地设置流式XML解析器以高效的方式执行此操作。看一下javax.xml.stream包。