В командной строке bash я хочу запустить xmllint для получения данных из XML-файла. Давайте посмотрим на файл, в котором я не имею никаких проблем:xmllint - невозможно прочитать специальные символы
Созерцайте fruits.xml файла:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="mykey">grapes</string>
</map>
и это мне с помощью xmllint, чтобы получить значение «виноград» от fruits.xml
xmllint --xpath "string(/map/string[@name = 'mykey'])" fruits.xml
и я получить выход из следующих действий:
$ grapes
большой я получил значение, но это не т он фактический ключ, который мне нужно использовать. «MyKey» должно быть «c1: fruits_id-% 1 $ s»
теперь, когда я изменить «MYKEY» значение в файле fruits.xml к другому значению я не могу получить какое-либо значение, возвращаемое из xmllint:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="c1:fruits_id-%1$s">grapes</string>
</map>
xmllint --xpath "string(/map/string[@name = 'c1:fruits_id-%1$s'])" fruits.xml
приведенная выше команда ничего не возвращает. Все, что я делаю, это изменение имени ключа, и теперь это не сработает. может кто-то помочь?
Возможно, ваша оболочка заменяет '$ s' чем-то другим (например, ничего)? – Biffen
Бинго вы его получили. Я должен был сделать \ $ s, чтобы заставить его работать. отправьте официальный ответ, если хотите. – j2emanue