0

我正在尝试使用 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:序列号:

请帮忙。

4

1 回答 1

0

您首先提出的问题可以在一个查询中解决。像这个:

$ServLab = $xpath->query("//div/span[string-length(@style) < 1]");
foreach ($ServLab as $entry) {
    echo $entry->nodeValue."<br />";
}

这将提供

Service ID: 
12345ABCD
于 2013-02-03T11:58:50.910 回答