0

phpxpathevaluateまたは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 = "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

最初に述べた質問は、1つのクエリで解決できます。このように:

$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 に答える