2013-03-26 4 views
2

약 2MB 크기의 Http 응답 문서에서 단 하나의 XML 요소 만 처리해야하는 Servlet이 있으며 요소 내에있는 내용을 클라이언트에 반환합니다. 현재 내가이 일을하고있다문자열 검색 성능

if (response.indexOf("<?xml") != -1 
       && response.indexOf("</Data>") != -1) { 
      return response.substring(response.indexOf("<?xml"), 
        response.indexOf("</Data>") + 7); 

이것이 태그를 검색하는 가장 효율적인 방법인지 또는 더 나은 접근 방법이 있는지 궁금하다.

+0

정규식으로보십시오 : 코드의 속도를

한 가지 방법은 IndexOf 여러 번 호출하지 않도록합니다. –

+0

괜찮 았지만 왜 Xml Parsing 라이브러리를 사용하지 않으시겠습니까? – smk

+0

당신은 xml을 처리하지 않습니다, 나는 개별 xml 요소를 의미하므로 파서가 여기에 필요하지 않을 수도 있습니다. –

답변

1

<?xml가 매우 가까운 발견하면서이 유일한 "잘못된 시작은"IndexOf 닫는 태그 것 </Data>에 길을 따라 찾을 것 때문에, 많은하여 알고리즘을 가속화 할 수있을 것 같지는 않다 파일의 시작. 이 경우에 더 나은 방법이 될 것이라고,

int idxXml = response.indexOf("<?xml"); 
int idxData = response.indexOf("</Data>"); 
if (idxXml != -1 && idxData != -1) { 
    return response.substring(idxXml, idxData+7); 
} 
+0

+1하지만 var는 int 여야합니다. Java –

+0

@EvgeniyDorofeev 감사합니다! 최근에 C#을 너무 많이하고 있습니다 :) – dasblinkenlight