在php xpath中检索条件值

时间:2013-02-03 11:45:39

标签: php xpath xhtml

我正在尝试使用php xpath evaluate或query检索某些值。但无法成功完成。 这是页面的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 =&#34; display:none&#34;的内容。或者如果没有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:序列号:

请帮忙。

1 个答案:

答案 0 :(得分:0)

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

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

这将提供

Service ID: 
12345ABCD