2015-03-30 6 views
2

В настоящий момент я борюсь за редактирование XML-файла. Когда я пишу командуРедактировать XML-элемент с помощью xmlstarlet не показывает эффект

xml ed -u "/project/version" -v "2.7.13-NEW-SNAPSHOT" pom.xml > ./pom_new.xml 

пишет новый xml-файл, но когда я открываю измененные в нем изменения файла.

Heres часть данного 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> 

Любые идеи о том, что?

+0

См [Глава 5, раздел 1] (http://xmlstar.sourceforge.net/doc/UG/ch05 .html) руководства пользователя. – npostavs

ответ

4

Ваша команда 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 
+2

Вау ... работал как шарм. Ты действительно сделал свой день. Спасибо. – user2528256