0

ここにHTMLブロックがあります:

<div class="title">
    <a href="http://test.com/asus_rt-n53/p195257/">
        Asus RT-N53
    </a>
</div>
<table>
    <tbody>
        <tr>
            <td class="price-status">
                <div class="status">
                    <span class="available">Yes</span>
                </div>
                <div name="price" class="price">
                    <div class="uah">758<span> ua.</span></div>
                    <div class="usd">$&nbsp;62</div>
                </div>

http://test.com/asus_rt-n53/p195257/リンク( )、タイトル(Asus RT-N53)、価格( )を解析するにはどうすればよい758ですか?

ここのカールコード:

$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->loadHTML($content);
$xpath = new DOMXPath($dom);
$models = $xpath->query('//div[@class="title"]/a');
foreach ($models as $model) {
    echo $model->nodeValue;
    $prices = $xpath->query('//div[@class="uah"]');
    foreach ($prices as $price) {
        echo $price->nodeValue;
    }
}
4

1 に答える 1

0

醜い解決策の1つは、価格結果をキャストして数値のみを保持することです。

echo (int) $price->nodeValue;

または、div内のスパンを見つけるためにクエリを実行し、それを価格から削除することができます(各価格内):

$span = $xpath->query('//div[@class="uah"]/span')->item(0);
$price->removeChild($span);
echo $price->nodeValue;

編集:

リンクを取得するには、次のリンクを使用getAttribute()して取得しますhref

$model->getAttribute('href')
于 2013-01-10T21:37:22.130 に答える