Преамбула:
Это не дубликат, поскольку все другие темы не отвечают на мою конкретную проблему.
Я нахожусь на Xubuntu 18.04
с использованием libxml-xpath-perl 1.42 (если это имеет значение)
Проблема:
У меня есть XML, скажем так:
<root>
<level1>
<somechild foo="bar" />
</level1>
</root
Я хочу получить значение bar
из атрибута somechild
s foo
.Однако, когда я запрашиваю
FOO=$(xpath -e '/root/level1/somechild/@foo' $XMLFILE)"
в моем bash-скрипте, он возвращает foo="bar"
вместо bar
.
. Я уже исследовал эту проблему и обнаружил, что должен сделатьчто-то со строкой (), но я просто не могу понять, какой правильный синтаксис для этого.
Я пробовал функцию string () в разных местах, но самый близкий к успеху, до сих пор был
FOO="$(xpath -e 'string(/root/level1/somechild/@foo)' $XMLFILE)"
В этом случае echo $FOO
дает мне
Запрос не вернул набор узлов.Значение: bar
Все еще не то, что я хочу, но, по крайней мере, без ошибок, и значение распознается как bar
Как правильно использовать это?