Подтвердить что ты не робот

Как получить Xmllint для чтения из stdin?

  • Я не хочу создавать файл XML
  • Мне нужно использовать -shell с cat для создания фильтров.
  • У меня нет xpath в моей версии xmllint, используя libxml2-2.7.6-14.el6.x86_64

    xml|xmllint --shell - <<< $(echo 'cat /')

    -:1: parser error : Start tag expected, '<' not found

EDIT: clustat -x выводит XML файл, и я хочу проанализировать активный node. Я не думаю, что есть способ сделать это без xpath, поэтому я создал файл temp xml.

/usr/sbin/clustat -x > /tmp/clustat.xml
ACTIVENODE=$(xmllint --shell /tmp/clustat.xml <<< `echo 'cat //group/@owner'`|grep -v "^/ >"|cut -d= -f2|tr -d \")
4b9b3361

Ответ 1

У меня была аналогичная проблема, когда мне пришлось разархивировать XML файл, а затем передать его в xmllint. Ключ - это опция "-", которая сообщает xmllint читать из stdin.

Например:

$ bzip2 -dc dierehabilitati00delagoog_meta.xml.bz2 | xmllint --format

не даст "использования" для xmllint. Добавление "-" выполнено:

$ bzip2 -dc dierehabilitati00delagoog_meta.xml.bz2 | xmllint --format -
<?xml version="1.0"?>
<metadata>
  <title>Die Rehabilitation im Strafrecht</title>
  <creator>Ernst Delaquis</creator>
  <mediatype>texts</mediatype>
  <collection>americana</collection>
</metadata>

Надеюсь, что это поможет.