2012-07-31 77 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 2012-07-31 17:39:16

+0

@millimoose 它包括解析和編譯時間。 – kannanrbk 2012-08-01 05:27:09

+0

你能提供給我們測試文件嗎? – 2012-08-01 06:47:47

回答

0

如果您確定development.mode只存在於一個篩選器中,則可以直接進行此操作,這會減少訪問數據的步驟數。

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

Hi @ srini.venigalla 它會在幾個節點中出現。 – kannanrbk 2012-08-01 05:28:07