2012-07-31 10 views
0
/web-app/filter/filter-class[text()="com.zide.AppFilter"]/following-sibling::init-param/param-name[text()="development.mode"]/following-sibling::param-value 

교환 할 노드.이 xpath 표현식을 개선하는 방법은 무엇입니까?

<web-app> 
    <!-- 
    <welcome-file-list> 
    <welcome-file>login/index.jsp</welcome-file> 
    </welcome-file-list> 
    --> 
    <filter> 
    <filter-name>Zide APP Filter</filter-name> 
    <filter-class>com.zide.AppFilter</filter-class> 
    <init-param> 
     <param-name>config-file</param-name> 
     <param-value>*.jsp,*.js</param-value> 
    </init-param> 
    <init-param> 
     <param-name>development.mode</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    </filter> 
</webapp> 

XML 파일 크기 - 100kb.

파일의 줄 없음 - 발현을 실행하기 위해 찍은 2600

시간 ~ 실행하는 213 밀리 초입니다.

java에서이 표현식을 최적화 할 수있는 방법이 있습니까?

+0

어떻게 측정 했습니까? XML 파일을 구문 분석하고 해당 시점에 XPath 표현식을 컴파일하는 것을 포함하지 않습니까? – millimoose

+0

@millimoose 파싱 및 컴파일 시간이 포함됩니다. – kannanrbk

+0

테스트 파일을 제공해 주실 수 있습니까? –

답변

0

development.mode가 하나의 필터에만 존재한다고 확신하면 직접 갈 수 있으므로 데이터에 도달하는 단계 수가 줄어 듭니다.

//param-name[text()="development.mode"]/following-sibling::param-value 
+0

안녕하세요 @ srini.venigalla 두 개의 노드가 있습니다. – kannanrbk

관련 문제