シェルを使用して Widget config.xmlから値を解析しようとしています。このタスクには sed を使用したいと思います。xsltprocよりも簡単なものがあれば、知りたいです。
この例では、以下のid属性値を使用していconfig.xml
ます。
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" id="http://example.org/exampleWidget" version="2.0 Beta" height="200" width="200">
<name short="123">Foo Widget</name>
</widget>
Jquery の attr のように単純であればいいのにと思います。var id = $("widget").attr("id");
現在、このシェル コードを使用するxsltproc
と失敗します。
snag () {
TMP=$(tempfile)
cat << EOF > $TMP
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" encoding="utf-8" indent="no"/>
<xsl:template>
<xsl:value-of select="$1"/>
</xsl:template>
</xsl:stylesheet>
EOF
echo $(xsltproc $TMP config.xml)
rm -f $TMP
}
ID=$(snag "widget/@id")
if test "$ID" = "http://example.org/exampleWidget"
then
echo Mission accomplished.
else
echo "<$ID> is wrong."
fi