jel*_*ela 4 php xpath domdocument
为什么这样呢
$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>");
Run Code Online (Sandbox Code Playgroud)
产量
links
Array
(
[0] => /browse/product.do?cid=1&vid=1&pid=1
)
Run Code Online (Sandbox Code Playgroud)
并不是
links
Array
(
[0] => /browse/product.do?cid=1&vid=1&pid=1
)
Run Code Online (Sandbox Code Playgroud)
?
答案很简单:
&是一种"&"在XML文档中表示字符的特殊方法.
这两个表示相同的字符.
当&符号的转义形式作为文本(而不是XML)输出时,显示它"&"是正确的.
正如@LarsH在评论中进一步阐述的那样:
当你说
loadhtml($html);,你正在将字符串解析为HTML,这意味着字符实体(如&)被解释为它们所代表的字符(如&).如果你想要一个将被解释为的字符串&,你需要转义&符号,例如&amp;
| 归档时间: |
|
| 查看次数: |
843 次 |
| 最近记录: |