すべての要素を間に入れる正しい方法は、xpath->evaluate
によって返されますか?xpathを反復評価する戻り値
私はその構造:
<?
$html = '
<div class="xGh" style="background-image: url(\'name_file0.jpg\');"></div>
<div class="xGh" style="background-image: url(\'name_file1.jpg\');"></div>
<div class="xGh" style="background-image: url(\'name_file2.jpg\');"></div>
<div class="xGh" style="background-image: url(\'name_file3.jpg\');"></div>
';
libxml_use_internal_errors(true);
$dom = new domDocument('1.0', 'utf-8');
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$xpath = new DOMXPath($dom);
$items = $xpath->query('//div[@class="xGh"]');
for($i = 0; $i < $items->length; $i++)
{ $ci = $xpath->evaluate("substring-before(substring-after(//*[@class=\"xGh\"]/@style, \"background-image: url('\"), \"')\")");
echo $ci;
}//name_file0.jpgname_file0.jpgname_file0.jpgname_file0.jpg
必要な出力は次のとおりです:
私のオブジェクトを反復することはできませんが、正しい結果でそのループで<?
$html = '
<div class="xGh" style="background-image: url(\'name_file0.jpg\');"></div>
<div class="xGh" style="background-image: url(\'name_file1.jpg\');"></div>
<div class="xGh" style="background-image: url(\'name_file2.jpg\');"></div>
<div class="xGh" style="background-image: url(\'name_file3.jpg\');"></div>
';
libxml_use_internal_errors(true);
$dom = new domDocument('1.0', 'utf-8');
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$xpath = new DOMXPath($dom);
$img = $xpath->evaluate('substring-before(substring-after(//div[@class=\'xGh\']/@style, "background-image: url(\'"), "\')")');
echo $img;//name_file0.jpg
編集
を
name_file0.jpgname_file1.jpgname_file2.jpgname_file3.jpg
シーケンスファイルを同じにしないために、ループ内に1つのカウントイテレータを配置する正しい場所はどこですか?
他の人を返すのはどのくらい反復ですか?
クエリメソッドでDOMXpathを試しましたか? '$ elements = $ xpath-> query(" ... ");' – DanielO
atentionに問題があります。問題はループのあるalll file_namesを返すことになりますが、 'xpath'では新しいですが、' $ img = $ (\ 'div [@class = \' xGh \ ']/@スタイル、背景画像:url(\' ")、" \ ') ") ); '私はDOMXpathを使っています.... sry my english – MagicHat
@DanielO。私のポイント、tksを明確にするための詳細を編集する – MagicHat