java - 无法使用 Intellij Idea 执行 Xpath

标签 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-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 突出显示参数值,因为它不存在,当我点击 ctrl+space 时,我看不到任何标签!我尝试在另一个项目和另一个 xml 中使用这个插件 - 它有效,但在那种情况下它不是。

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

已更新

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

最佳答案

首先,param-value 元素位于命名空间中,但您的 XPath 表达式没有在任何命名空间中查找它。通常您需要一个表达式,例如 //j:param-value,其中前缀 j 绑定(bind)到命名空间 http://java.sun.com/xml/ns/j2ee - 您必须查看 IntelliJ 文档以了解如何执行此操作。

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

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

关于java - 无法使用 Intellij Idea 执行 Xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17941945/

相关文章:

c# - 用于获取子元素计数的 XPath 表达式

java - 将 JSON 解析为 MONGODB 文档

java - 设置文本字段的禁用背景颜色

java - 如何取消 FutureResult 执行

java - Android Studio Gradle 同步 : "Unable to load class..."

java - Solr 中的自定义电子邮件过滤器不起作用

java - 使用 Jackson 将 hashmap 编码为 XML - 结构错误

xml - TortoiseSVN 错误 XML 响应包含无效的 XML 和格式错误的 XML : no element found

Xpath 获取同一 div 中包含混合元素的文本

xml - XSLT 列出多个值