Web ページで xmlstarlet を使用しているときに、ほとんどの場合、エンティティ参照エラーに直面しました。これにより、Web ページからの抽出には役に立たなくなります。
HTMLページは整形式のXMLではないため(htmlも処理するオプションはありますか?)私はそれらを次のように変換します
tidy -asxhtml
XHTMLに、きちんと宣言を入れます
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
次にxmlstarletで処理した後
curl http://www.xfree86.org/current/index.html | tidy -asxhtml | \
xmlstarlet sel --net -T -t -m hr -v . -
それは常に同じエラーをスローします
-:13: parser error : Entity 'reg' not defined
<h1>Documentation for XFree86® version 4.8.0</h1>
xmlsttarlet にエンティティ参照ファイルを知らせる方法を知っている人はいますか?