使用 xPath 从 pom 中提取版本号时出现问题
Having issue while extracting version number from pom using xPath
我在从 POM 中提取版本号时遇到问题。有人可以帮我吗?
POM.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<artifactId>watcher</artifactId>
<version>0.0.1-SNAPSHOT</version>
<groupId>com.test.file</groupId>
<name>file-watcher</name>
<packaging>jar</packaging>
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<relativePath/>
<version>2.6.1</version>
</parent>
</project>
XPATH 表达式:
//project/version/text()
错误:返回未找到匹配项
您的元素位于默认命名空间中。所以尝试像下面这样的 namespace-agnostic XPath-1.0 表达式:
/*[local-name()='project']/*[local-name()='version']/text()
它的输出是
0.0.1-SNAPSHOT
随心所欲。
你这里的XPath是正确的,应该return 0.0.1-SNAPSHOT
它可以在像 this
这样的 XPath 模拟器上模拟
所以很明显,您的问题不在于 XPath 表达式,而在于您对它所做的事情。
我在从 POM 中提取版本号时遇到问题。有人可以帮我吗?
POM.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<artifactId>watcher</artifactId>
<version>0.0.1-SNAPSHOT</version>
<groupId>com.test.file</groupId>
<name>file-watcher</name>
<packaging>jar</packaging>
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<relativePath/>
<version>2.6.1</version>
</parent>
</project>
XPATH 表达式:
//project/version/text()
错误:返回未找到匹配项
您的元素位于默认命名空间中。所以尝试像下面这样的 namespace-agnostic XPath-1.0 表达式:
/*[local-name()='project']/*[local-name()='version']/text()
它的输出是
0.0.1-SNAPSHOT
随心所欲。
你这里的XPath是正确的,应该return 0.0.1-SNAPSHOT
它可以在像 this
这样的 XPath 模拟器上模拟
所以很明显,您的问题不在于 XPath 表达式,而在于您对它所做的事情。