我正在尝试使用 php xpath 求值或查询来检索某些值。但无法成功做到这一点。以下是页面的 html 结构:
<div id="productinfo">
<h2>
<span id="productname">Computer</span>
</h2>
<span id="servieidLabel" style=""> Service ID: </span>
<span id="snLabel" style="display: none"> Serial Number: </span>
<span id="servidno">12345ABCD</span>
我只想显示带有 style="display:none" 的内容,或者如果 style 属性根本不存在。因此,结果是:- 服务 ID:12345ABCD。
我试过:
$ServLab = $xpath->query("//span[@id='servieidLabel']");
foreach ($ServLab as $entry) {
echo "Service Label:" ,$entry->nodeValue."<br />";
}
输出 = 服务 ID:
和
$servid = $xpath->query("//span[@id='servidno']");
foreach ($servid as $entry) {
echo "Service Id No:" ,$entry->nodeValue."<br />";
}
输出 = 空白。而输出应该是 12345ABCD。我错过了什么?
如果我尝试:
$prodid = $xpath->evaluate("//div[@id='productinfo']");
foreach ($prodid as $entry) {
echo $entry->nodeValue."<br />";
}
输出 = 服务 ID: 序列号:
请帮忙。
您首先陈述的问题可以在单个查询中解决。像这个:
$ServLab = $xpath->query("//div/span[string-length(@style) < 1]");
foreach ($ServLab as $entry) {
echo $entry->nodeValue."<br />";
}
这将提供
Service ID:
12345ABCD