Я пытаюсь написать сценарий bash для извлечения нескольких «режиссеров» из XML-файла , такого как этот и соедините их, разделив их вертикальной чертой, т.е. Tom Tykwer|Andy Wachowski.
Соответствующий раздел xml:
<directors>
<item>Tom Tykwer</item>
<item>Andy Wachowski</item>
</directors>
С xmlstarlet в скрипте bash следующие команды:
DIRECTORS=$(xmlstarlet sel -t -v "imdbdocument/directors/item" mymoviexml)
echo $DIRECTORS
дай мне
Tom Tykwer Andy Wachowski
и эта команда прямо на терминале
xmlstarlet sel -t -v "imdbdocument/directors/item" mymovieapi.xml
дает мне:
(empty line)
Tom Tykwer
Andy Wachowski
Я не знаю, почему добавляются новые строки, когда я не указываю параметр -n.
Некоторые из моих поисков предложили что-то вроде этого:
xmlstarlet sel -t -m "imdbdocument/directors" -v "item" -o "|" mymovieapi.xml
но это просто дает мне:
Tom Tykwer
Andy Wachowski|
Я был бы признателен за любую помощь, которую я могу получить. Я вижу такое поведение с xmlstarlet 1.3.1 в Debian Wheezy и xmlstarlet 1.5.0 в Xubuntu 13.10.
--text
(или-T
), так как вам не нужен вывод XML. - person npostavs   schedule 02.01.2014