据我所知,我不应该使用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);
}
答案 0 :(得分:1)
您无需创建Document
即可更改XML文档。您可以非常轻松地设置流式XML解析器以高效的方式执行此操作。看一下javax.xml.stream
包。