Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何改进这个xpath表达式?_Java_Xpath - Fatal编程技术网

Java 如何改进这个xpath表达式?

Java 如何改进这个xpath表达式?,java,xpath,Java,Xpath,要替换的节点 /web-app/filter/filter-class[text()="com.zide.AppFilter"]/following-sibling::init-param/param-name[text()="development.mode"]/following-sibling::param-value 齐德应用过滤器 com.zide.AppFilter 仅存配置 *.jsp,*.js 发展模式 真的 XML文件大小-100kb 文件中的行数-2600 执行表达式所

要替换的节点

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

齐德应用过滤器
com.zide.AppFilter
仅存配置
*.jsp,*.js
发展模式
真的
XML文件大小-100kb

文件中的行数-2600

执行表达式所需的时间约为213毫秒


是否有任何方法可以在java中优化此表达式。

如果您确定development.mode只存在于一个筛选器中,您可以直接使用它,这将减少访问数据的步骤数

 <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文件和编译XPath表达式吗?@millimoose它包括解析和编译时间。你能给我们提供测试文件吗?@bharathi I/O、DOM解析和XPath之类的高级API天生就很慢,如果你不在乎速度,或者,您可以通过对许多操作使用相同的DOM树并重用已编译的查询来分摊开销。如果您在此用例中需要吞吐量,请使用StAX。(如果您试图从DOM树中替换/删除一些值,那么这应该是一个不错的选择。)Hi@srini.venigalla它将在几个节点中出现。
//param-name[text()="development.mode"]/following-sibling::param-value