4
なぜこのxpathがhtmlの特殊文字を削除するのはなぜですか?
$html = '<a href="/browse/product.do?cid=1&vid=1&pid=1" class="productItemName">what is going on here</a>';
$dom = new DOMDocument();
$dom->loadhtml($html);
$xpath = new DOMXPath($dom);
$selectors['link'] = '//a/@href';
$links_nodeList = $xpath->query($selectors['link']);
foreach ($links_nodeList as $link) {
$links[] = $link->nodeValue;
}
echo("<p>links</p>");
echo("<pre>");
print_r($links);
echo("</pre>");
出力
links
Array
(
[0] => /browse/product.do?cid=1&vid=1&pid=1
)
なく
links
Array
(
[0] => /browse/product.do?cid=1&vid=1&pid=1
)
?
+1良い答え。具体的には、 'loadhtml($ html);'と言うと、その文字列をHTMLとして解析しています。つまり、 '& 'のような文字エンティティは、(&のように)それらの文字に解釈されます。 '&'と解釈される文字列が必要な場合は、アンパサンドをエスケープする必要があります。 '& amp;' – LarsH
@LarsH:良い説明です。 –