0

XML ドキュメントとは関係なく、xpath から返される値の型を特定する方法はありますか? 具体的には、lxml を使用しています。

例:

  • //a//b[a/@href]常に 0 個以上の要素のリストを返します。
  • //a/text()//a/@href常に 0 個以上の文字列のリストを返します。

これらを分析しようとするさまざまな方法を考えることができますが、車輪を再発明しようとしているように感じます. これを行うより良い方法はありますか?

バックグラウンド

aタグがなく、root.xpath('//a')[0]. そして、盲目的にすべてをキャッチしたくありません。そこで、常に正しい型を返す一連の関数を作成しました。cssselectorとの置換は問題なく機能しますが、その出力がどうあるべきかを知らずattribに、出力の期待を満たすことはできません。xpath

本当に気にするなら、ここに私のコードがあります。https://scraperwiki.com/editor/raw/irked

4

1 に答える 1

0

XPath 式 like が static であると仮定すると、//b[a/@href]常に同じ型が返されます。(この場合は要素のリストです。) リストが空かどうかだけを知りたい場合。簡単なifステートメントでそれを行うことができます:

results = document.xpath('//b[a/@href]')
if results:
    do_something(results[0]
else:
    no_result()
于 2012-08-02T08:55:14.443 に答える