BashでHTML文字列を操作する

BashでHTML文字列を操作する

だから私はhtmlファイルから3行を得ました。

/html> 
<table style="width:500px;text-align:left;">
<tr><td>apple</td><td>400</td><td>432</td><td>730</td></tr>

どういうわけか、3行目(400、432、730)に表示される3桁の数字を取得し、その合計(1562)をapple_numという独自の変数に割り当てる必要があります。どんな助けでも大変感謝します!

ベストアンサー1

これを使用xmlstarletしてXMLを解析し、2番目、3番目、および4番目の要素<td/>値を選択できます。追加のテーブルとテーブル行がある場合は、より多くのHTMLコンテンツを提供する必要があります。それ以外の場合は、適切なセクションを選択する方法を直接理解する必要があります。

解析のためのコードスニペットpage.html

apple_var=$(
    xmlstarlet fo -H page.html |
    xmlstarlet sel -t -v 'concat(//td[2],"+",//td[3],"+",//td[4])' -n 2>/dev/null |
    bc
)
echo apple_var=$apple_var

出力

apple_var=1562

最初の呼び出しはxmlstarletHTMLを解析し、可能であればそれをXMLに変換します。 2番目の呼び出しはXMLを解析し、必要な<td/>要素値と+その間のシンボルを抽出します。パイプラインの最後の部分では、目的の結果値を提供する数学演算を実行します。これはapple_var必要に応じて割り当てられます。

おすすめ記事