各要素の属性の幅と高さを取得するにはどうすればよいですか?例えばDOMまたはXPATHを使用して各要素の属性の幅と高さを取得する
、
$dom = new DOMDocument;
$dom->loadHTML('<div class="item" style="width:295px; height:210px; border:1px solid #000;"></div><div></div>');
foreach($dom->getElementsByTagName('div') as $node)
{
$style = $node->getAttribute('style');
var_dump($style);
}
結果、
string 'width:295px; height:210px; border:1px solid #000;' (length=49)
string '' (length=0)
が、これらは私が後だ何、
- は
item
のクラス名を持つdiv
を選択します。 - (幅)と
210
(高さ)のみを取得します。
DOMでは可能ですか?またはXPATH?
編集:私は今、クラス名を持つdiv要素を選択するために管理しているように見える
、
$dom = new DOMDocument;
$dom->loadHTML('<div class="item" style="width:295px; height:210px; border:1px solid #000;"></div><div></div>');
$xpath = new DOMXpath($dom);
foreach ($xpath->query('//*[@class="item"]') as $node) {
$style = $node->getAttribute('style');
var_dump($style);
}
は今、これは私がした後にのみ午前何か、
は295
(幅)を取得および
210
(高さ)。
http://stackoverflow.com/questions/3448005/ xpath-and-xquery/3448050#3448050のimplementation-condition-in-conditionは、特定のクラス属性を持つdivを取得するXPathに関する部分に答えます。インラインスタイルを分割するには、通常の文字列関数またはCSSパーサが必要です。これはDOMのドメインではありません。 – Gordon
http://stackoverflow.com/questions/4432334/parse-inline-css-values-with-regex regex – Gordon
のsidenoteでインラインスタイルを解析してitemのclass属性を持つdivのスタイル属性を取得する方法に答えましたあなたは '//div [@ class =" item "]/@ style'を実行することもできます。これはDOMAttrを返します。 – Gordon