Как изменить значение свойства с помощью augeas, позиция которого изменяется в XML?
У меня есть следующая проблема:
Мой XML (упрощенный):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<properties>
<property name="username">USERNAME</property>
<property name="anything">blabla</property>
</properties>
</configuration>
Мне нужно заменить значение Username на augeas. Он прекрасно работает с:
augtool> set /files/test.xml/configuration/properties/property[1]/#text NEWUSER
Но проблема в том, что запись имени пользователя не всегда находится на первой позиции. Есть ли способ в augeas искать позицию с "совпадением" или каким-то регулярным выражением?
augtool> match /files/test.xml/configuration/properties/*/#attribute/name username
Прекрасно работает и приводит к
/files/test.xml/configuration/properties/property[1]/#attribute/name
Но я не знаю, как использовать эту информацию при установке значения.1 ответ:
Что вам нужно сделать, это:
set /files/test.xml/configuration/properties/property[#attribute/name='username']/#text NEWUSER
При этом выбирается свойство (
/files/test.xml/configuration/properties/property
), чей#attribute/name
подузел совпадает сusername
, и устанавливается его#text
подузел какNEWUSER
.