Как использовать пространства имен XML с 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>

Любые идеи по этому поводу?


person user2528256    schedule 30.03.2015    source источник
comment
См. главу 5, раздел 1 руководства пользователя.   -  person npostavs    schedule 30.03.2015


Ответы (1)


Ваша команда xmlstarlet будет работать, если вы примете во внимание пространство имен вашего документа, используя -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
person kjhughes    schedule 30.03.2015
comment
Вау... сработало как шарм. Ты действительно сделал мой день. Спасибо. - person user2528256; 31.03.2015