Java 无法使用Intellij Idea执行Xpath

Java 无法使用Intellij Idea执行Xpath,java,xml,xpath,web.xml,Java,Xml,Xpath,Web.xml,我尝试在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-instanc

我尝试在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>

Web应用程序创建的原型
服务器名
com.ServletDemo
服务器名
/演示1
电子邮件
admin@email.com
我没有结果。此外,Idea突出显示参数值,因为它不存在,当我点击ctrl+space时,我看不到任何标记!我尝试在另一个项目和另一个xml中使用这个插件——它可以工作,但在这种情况下就不行了

有什么想法吗?我可能错过了一些配置

已更新


我从web应用标记和表达式开始工作中删除属性。但是为什么呢?

首先,param value元素在名称空间中,但是XPath表达式没有在名称空间中查找它。通常,您需要一个表达式,如
//j:param value
,其中前缀j绑定到名称空间-您必须查看IntelliJ文档以了解如何执行此操作

其次,param-value元素没有名为
email
的子元素。如果希望关联的
参数name
元素的值为“email”,则

//j:context-param[j:param-name='email']/j:param-value
请尝试以下操作:

  • 打开计算Xpath窗口(ctrl+shift+a:计算Xpath)
  • 单击高级按钮
  • 添加带有前缀的uri(在下面的屏幕截图上,我添加了带有“POM”前缀的Maven POM命名空间)
  • 尝试在任何pom.xml上计算“/pom:project”xpath(注意,现在IntelliJ自动完成pom元素)

  • 您遇到的问题是XPath与XML不匹配。你想回报什么?我想从中获得价值。我运行//context-param/param-name[text()='email'],但仅在从web app标记中删除属性后才起作用,因此它在没有版本、xmlns、xmlns:xsi和schemalocation属性的情况下起作用。