私のコードは、私は、属性の真ん中にスペースがあるので、私のコードは動作していないように思われる次シンプルなHTML DOMスペース
foreach($html->find('div[class=this attribute]') as $itemtitle) {
echo $itemtitle;
}
です。それはそれをピックアップするようにスペースを回避する方法はありますか?滞在するスペース。
私のコードは、私は、属性の真ん中にスペースがあるので、私のコードは動作していないように思われる次シンプルなHTML DOMスペース
foreach($html->find('div[class=this attribute]') as $itemtitle) {
echo $itemtitle;
}
です。それはそれをピックアップするようにスペースを回避する方法はありますか?滞在するスペース。
HTMLクラス名には実際にはスペースを使用できません。スペースは複数のクラスを区切るので、実際に要素に2つのクラス、すなわちthis
とattribute
を与えています。
したがって、両方のクラスを持つ要素を見つけてください。これは、トリックを行う必要があります。
foreach($html->find('div.this.attribute') as $itemtitle) {
echo $itemtitle;
}
(.
は、クラスの省略形です。)
実際には、掲載され、元のコードが正常に動作します。コードのどこかにエラーがあります。$html
には、必要な解析済みHTMLが含まれていません。コードのその部分を投稿できますか?
はい、ちょうどそれを引用:
foreach($html->find('div[class="this attribute"]') as $itemtitle) {
echo $itemtitle;
}
試してみてください。
find('div[class="this attribute"]')
をあなたがクラスを見ているので、あなたが使用できる属性:
こと、それをテストしますforeach($html->find('div.this.attribute') as $itemtitle) {
echo $itemtitle;
}
クラスthis
およびattribute
の両方を有するが、必ずしも1つのクラスe空間内のスペース(前後に他のクラスを持つことができ、その順序はclass="attribute this"
のように逆にすることができます)。
class属性には絶対にスペースを入れることができますが、クラス名ではできません。 – alexn
@alexn、よろしくお願いします。あいまいさがないように改訂されました。 – benesch
私は – user1130861