如何将 XML 名称空间与 xmlstarlet XPaths 一起使用?
How to use XML namespaces with xmlstarlet XPaths?
目前我正在努力编辑 XML 文件。当我写命令时
xml ed -u "/project/version" -v "2.7.13-NEW-SNAPSHOT" pom.xml > ./pom_new.xml
它写入了新的 xml 文件,但是当我打开文件时,里面没有任何变化。
这是给定的 xml 的一部分,我想编辑:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.groupID.test</groupId>
<artifactId>test-api-parent-pom</artifactId>
<version>2.7.13-SNAPSHOT</version>
<packaging>pom</packaging>
<name>test-api-parent-pom</name>
...
...
</project>
有什么想法吗?
如果您使用 -N p=http://maven.apache.org/POM/4.0.0
:
考虑文档的命名空间,您的 xmlstarlet 命令将起作用
xml ed -N p=http://maven.apache.org/POM/4.0.0 -u "/p:project/p:version" -v "2.7.13-NEW-SNAPSHOT" pom.xml > ./pom_new.xml
目前我正在努力编辑 XML 文件。当我写命令时
xml ed -u "/project/version" -v "2.7.13-NEW-SNAPSHOT" pom.xml > ./pom_new.xml
它写入了新的 xml 文件,但是当我打开文件时,里面没有任何变化。
这是给定的 xml 的一部分,我想编辑:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.groupID.test</groupId>
<artifactId>test-api-parent-pom</artifactId>
<version>2.7.13-SNAPSHOT</version>
<packaging>pom</packaging>
<name>test-api-parent-pom</name>
...
...
</project>
有什么想法吗?
如果您使用 -N p=http://maven.apache.org/POM/4.0.0
:
xml ed -N p=http://maven.apache.org/POM/4.0.0 -u "/p:project/p:version" -v "2.7.13-NEW-SNAPSHOT" pom.xml > ./pom_new.xml