2

我有一个 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);

只是想知道这是否是搜索标签的最有效方法,还是有更好的方法可用。

4

1 回答 1

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);
}
于 2013-03-26T03:56:22.463 回答