我有一个Servlet,它需要处理大小约为2 MB的Http响应文档中的1个XML元素,并将元素中的内容返回给客户端。目前我在做这个
if (response.indexOf("<?xml") != -1
&& response.indexOf("</Data>") != -1) {
return response.substring(response.indexOf("<?xml"),
response.indexOf("</Data>") + 7);
只是想知道这是否是搜索标签的最有效方式,还是有更好的方法。
答案 0 :(得分:1)
你不太可能能够加快算法的速度,因为IndexOf
在</Data>
前往的唯一“错误开始”将是结束标记,而发现<?xml
非常接近文件的开头。
加快代码速度的一种方法是避免多次调用IndexOf
:
int idxXml = response.indexOf("<?xml");
int idxData = response.indexOf("</Data>");
if (idxXml != -1 && idxData != -1) {
return response.substring(idxXml, idxData+7);
}