私はすでに基本的にxmlファイルを入力として受け取り、特定のXMLタグのテキストを抽出して動作するスクリプトを作成しています。しかし、複数行のテキストを取得したり、特殊文字を使用することは十分にスマートではありません。テキスト形式はタグの下で定義されているのでそのまま維持することが非常に重要です。sed - shellスクリプトを使ってXMLタグからテキストを抽出する
<nick>Deminem</nick>
<company>XYZ Solutions</company>
<description>
/**
*
* «Lorem» ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
* tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
* At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
* no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
* consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
* magna aliquyam erat, sed diam voluptua.
*
**/
</description>
上記のスクリプトは、各特定のタグのテキストを抽出し、新しいvalueArrayに割り当てる:
は、以下のXML入力されます。 sedに対する私の命令は基本的なものですが、常に余分なマイルを喜んで行います。
tagsArray=(nick company description)
noOfElements=${#tagsArray[@]}
for ((i=0;i<$noOfElements;i++)); do
OUT=`grep ${tagsArray[${i}]} filename.xml | tr -d '\t' | sed -e 's/^<.*>\([^<].*\)<.*>$/\1/' `
valueArray[${i}]=${OUT}
done
@AnderLindahi - うんそれはsedの/はawkを通じて真の解析XMLですこれらのツールは、スマートXML処理のためのものではありませんので、簡単な仕事ではありません。しかし残念なことに、sedを使って** schellスクリプト**を使うことが私の要求です。 – Deminem
@AnserLindahi - [xsltproc](http://linuxcommand.org/man_pages/xsltproc1.html)には、Mac OSXとUnixがあらかじめインストールされていますか? – Deminem
@Deminem:シェルスクリプトを使用する必要があるということは、誰かにドライバを使って木を切る必要があるようなものです。それはすることができますが、それはかなりではありません。 –