2013-05-23 1 views
0

java에서 XMLPullParser를 사용하여 중첩 된 자식 노드가 많은 하나의 XML 파일을 다음과 같이 구문 분석하고 있습니다.XMLPullParser에서보다 효율적인 방법으로 하위 노드 검색 2.1.10

<pt> 
    <a>85</a> 
    <B>03</B> 
    <pd> 
     <g> 
      <most>155</most> 
     </g> 
     <e>407</e> 
    </pd> 
</pt> 

저는 API에 익숙하지 않습니다. 그래서 많은 자식 노드를 찾으려면 정말 가난한 XmlPullParser 인스턴스에 많은() 메서드를 사용하여 "대부분" 같은. 누군가 XMLPullParser를 사용하여보다 효율적인 방식으로 하위 노드를 검색하도록 도와 줄 수 있습니까?

답변

0

구문 분석을 위해 XmlPullParser를 사용하는 더 효율적인 방법을 찾고 계시다면, 나는 아무 것도 없습니다. 예를 들어 JavaScript에서는 ID를 지정하여 요소에 "직접"액세스 할 수 있습니다. 이는 훨씬 더 효율적으로 보입니다. 그러나이 경우 브라우저는 이미 전체 DOM 트리를 구문 분석하고 나중에 사용할 수 있도록 ID를 표시했습니다.

내가 이해 한 바로는 XmlPullParser는 "즉시"구문 분석을 수행하므로 "next()"메서드를 사용하여 대상 노드에 도달하면 처음 읽는 것입니다. 따라서 직접 액세스 할 수있는 다른 방법은 없습니다. 또한 XmlPullParser 인터페이스는 문서의 일부 섹션으로 이동하는 메서드를 정의하지 않는다고 생각합니다.

그러나 실제로 성능을 향상해야하는 경우 XML 파일을 구문 분석하기 전에 파일의 일부분을 제거하여 예를 들어 유용하지 않아야 할 수도 있습니다. 사용자가 수행하는 작업에 따라 일반 텍스트를 사전 처리하는 것이 XML 구문 분석보다 훨씬 빠를 수 있습니다. 그러나 그렇게함으로써 문서를 망칠 기회도 있습니다.

XML에는 많은 이점이 있지만, 필자의 경험에 따르면 파싱은 실제로 느려질 수 있습니다. 성능이 정말로 중요한 경우 가능한 경우 다른 파일 형식 (예 : 바이너리)으로 전환하는 것이 훨씬 빠릅니다.

+0

귀하의 상세하고 중요한 설명에 많은 감사를드립니다. –

+0

당신은 대단히 환영합니다. 이것이 당신의 질문에 완전히 답했다고 생각한다면, 대답을 수락하는 것을 잊지 마십시오. – personne3000