Как изменить значение свойства с помощью 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 3

1 ответ:

Что вам нужно сделать, это:

set /files/test.xml/configuration/properties/property[#attribute/name='username']/#text NEWUSER

При этом выбирается свойство (/files/test.xml/configuration/properties/property), чей #attribute/name подузел совпадает с username, и устанавливается его #text подузел как NEWUSER.