web-dev-qa-db-ja.com

Xmllintをstdinから読み取る方法は?

  • XMLファイルを作成したくない
  • フィルターを作成するには、猫と一緒に--Shellを使用する必要があります
  • _libxml2-2.7.6-14.el6.x86_64_を使用して、私のバージョンのxmllintにxpathがありません

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

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

編集:_clustat -x_はXMLファイルを出力し、アクティブノードを解析したいと思います。 xpathなしでそれを行う方法はないと思うので、一時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 \")
_
40
Dejan

XMLファイルを解凍してxmllintにフィードしなければならないという同様の問題がありました。キーはxmllintstdinから読み取るように指示する「-」オプションです。

例えば:

$ 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>

お役に立てれば。

51
aiGuru