OK、これは私を夢中にさせています。phpQuery を使用して、次の一見些細な HTML をスクリーン スクレイピングしようとしています。
<td><nobr>10-05-2009</nobr><br>06:10<br>17:35 -1</td>
日付はnobrタグでラップされているので簡単です。$element[':first-child']->text()
トリックを行います。 しかし、テキストの 2 番目のビットで汚れたミットを取得するにはどうすればよいでしょうか?
CSS は要素に対してのみ機能するため、テキストではなくnth-child(2),(3)
周囲の<br>
タグを返します。
XPath を実行できれば、2 番目のノードは.//text()
ゴールドになります。しかし、どうやら phpQuery ランドでは、コンテキスト$element->xpath->query('.//text()')
はドキュメント ルートであるため、ドキュメント全体のすべてのテキストを取得します!
アイデア?jQueryでテキストノードを選択するにはどうすればよいですか?のすべてのソリューション Javascript DOM 操作が含まれているように見えますが、これは PHP のひどい DOM API よりもかなり害が少ないものです。たぶん、要素全体を文字列にダンプし、それを爆発させるだけ<br>
です...