-2

XPath が特定の要素の HTML を返す方法があるのだろうか?

<td>
1212 S.W. 123 St.
<br>
Flower, Maryland 11234
<br>
United States
</td>

XPath クエリ:

string(//table[@cellspacing='10']/tr[2]/td[2])

電流出力

1212 S.W. 123 St.Flower, Maryland 11234United States

望ましい出力:

1212 S.W. 123 St.<br>Flower, Maryland 11234<br>United States

4

2 に答える 2

0

これは XPath の問題ではなく、PHP の問題です。XPath を実行するために何を使用しているかは実際にはわかりませんが、HTML を解析しているため、DOM を想定します。

以下は、要素の内部コンテンツを取得するために必要なコードです。ノードを見つけたら、nodeValueその下のすべてを取得するために呼び出す必要があることに注意してください。

<?php

$html = <<<HTML
<table>
    <tr>
        <td>
            1212 S.W. 123 St.
            <br>
            Flower, Maryland 11234
            <br>
            United States
        </td>
    <tr>
</table>
HTML;
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//table/tr/td');

foreach($nodes as $node) {
    echo $node->nodeValue;
}

?>
于 2013-06-30T23:56:30.307 に答える