有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法使用Intellij Idea执行Xpath

我尝试在web中执行xpath表达式。intellijidea中的xml

Xpath表达式

//param-value[email]

网络。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应用标记和表达式开始工作中删除属性。但是为什么呢


共 (2) 个答案

  1. # 1 楼答案

    请尝试以下操作:

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

    Intellij Evaluate expression screenshot

  2. # 2 楼答案

    首先,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