繁体   English   中英

无法使用Intellij Idea执行Xpath

[英]Can not execute Xpath with Intellij Idea

我尝试在Intellij Idea中的web.xml中执行xpath表达式

Xpath表达式

//param-value[email]

在web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app  version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>Archetype Created Web Application</display-name>
    <servlet>
        <servlet-name>ServletName</servlet-name>
        <servlet-class>com.ServletDemo</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>ServletName</servlet-name>
        <url-pattern>/Demo1</url-pattern>
    </servlet-mapping>

    <context-param>
        <param-name>email</param-name>
        <param-value>admin@email.com</param-value>
    </context-param>
</web-app>

我没有结果。 此外,Idea强调param值,因为它不存在,当我clik ctrl + space时,我看不到标签! 我尝试在另一个项目和另一个xml中使用此插件 - 它可以工作,但在这种情况下它不是。

有任何想法吗? 可能是我错过了一些配置?

更新

我从web-app标签中移除属性,表达式开始工作。 但为什么?

首先,param-value元素位于命名空间中,但是您的XPath表达式在没有命名空间的情况下查找它。 通常你需要一个表达式,如//j:param-value ,其中前缀j绑定到命名空间http://java.sun.com/xml/ns/j2ee - 你必须检查IntelliJ文档才能看到怎么做。

其次,您的param-value元素没有名为email的子元素。 如果您希望关联的param-name元素的值为“email”,那就是

//j:context-param[j:param-name='email']/j:param-value

试试以下:

  1. 打开评估Xpath窗口(ctrl + shift + a:Evaluate Xpath)
  2. 单击高级按钮
  3. 添加带有前缀的uri(在下面的屏幕截图中,我添加了Maven POM名称空间,带有“pom”前缀)
  4. 尝试在任何pom.xml上评估“/ pom:project”xpath(注意,现在IntelliJ自动填充pom元素)

Intellij评估表达式截图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM