1

我正在修改 pom 文件以更改版本节点值。我可以让 xpath 修改所有版本节点,但我只希望它在 artifactId 和分类器都匹配某些值时更改版本节点。这是我的xml:

<artifactItem>
    <groupId>com.xyz</groupId>
    <artifactId>foobar</artifactId>
    <version>${project.version}</version>
    <classifier>config</classifier>
    <type>zip</type>
    <overWrite>true</overWrite>
</artifactItem>
<artifactItem>
    <groupId>com.xyz</groupId>
    <artifactId>foobar</artifactId>
    <version>${project.version}</version>
    <type>jar</type>
</artifactItem>

如果 artifactId 是 foobar,并且分类器是 config,我希望返回版本以便我可以修改它。

使用我找到的其他示例,我尝试了这个,但它没有用:

/artifactItem/artifactId[.='foobar']
     /following-sibling::*
      [count(.|/artifactItem/classifier[. ='config']/preceding-sibling::*)
      =
      count(/artifactItem/classifier[. ='config']/preceding-sibling::*)
      ] 

任何建议将不胜感激!

谢谢

4

1 回答 1

0
//artifactItem[artifactId='foobar' and classifier='config']/version

解释:

我们从 artifactItem 节点中选择版本节点​​,该节点的 artifactId 为“foobar”,分类器为“config”。

您可以使用括号来限定特定节点,使用 sub-XPATH 语句,其中上下文是括号之前的节点。

这是你想要的?

于 2012-06-20T14:23:38.580 回答