Как мне обновить строковый атрибут с помощью xmlstarlet?

#xml #bash #command-line-interface #xmlstarlet

#xml #bash #интерфейс командной строки #xmlstarlet

Вопрос:

 $ xmlstarlet edit -L -u "/parse-plugins/mimeType/plugin[@id='parse-html']/@id" -v 'parse-tika' conf/parse-plugins.xml
  

Почему он не заменяет идентификатор плагина mimetpes, который в настоящее время использует плагин parse-html?

Из документации xmlstarlet:

Обновить значение атрибута

xml ed -u ’/xml/table/rec[@id=3]/@id’ -v 5 xml/tab-obj.xml

Я работаю над nutch parse-plugins.xml .

Комментарии:

1. У меня это работает. Вы получаете какую-либо ошибку?

2. @Mark — изменяется ли содержимое файла?

3. Да, он перезаписывает файл для меня.

4. (Остался один parse-html атрибут, но, конечно, он находится по другому пути в документе.)

5. хммм ..некоторые способы повторного открытия файла (в энный раз) Я вижу, что это изменилось!

Ответ №1:

как указал Марк, это работает! Чтобы проверить, что все изменилось, используйте

 $ xmlstarlet sel -t -c "/parse-plugins/mimeType/plugin[@id='parse-html']" conf/parse-plugins.xml
  

или атрибут файла, измененный последним.