PHP'nin XPath çok öğeleri döndürür

0 Cevap php

PHP XPath kullanmaya çalışıyorum ve ben çok öğeleri olsun. Bu benim kodudur:

libxml_use_internal_errors(true);
$document = new DOMDocument;
$document->strictErrorChecking = false;
$document->loadHTML($text);
$xpath = new DomXPath($document);
$placeholders = $xpath->query('//div[starts-with(@class, "waf-ph-")]');
print '$placeholders->length: ' . $placeholders->length;

Sorgusuna tek bir unsur var. Bir. Değil tek bir tane daha. Ama burada benim çıkışı bulunuyor:

$placeholders->length: 7

Ben kodlama bitti ve ben standartlarla uyumlu XHTML garanti edemez zaman ben girişi üzerinde tam kontrole sahip olmayacak çünkü ben loadHTML kullanıyorum. Ben Tidy kullanmak niyetinde, ama ben henüz buna güvenmemek çalışıyorum. Ancak XPath eşleşen yalnızca bir div var.

Ayrıca soruşturma yedi defa bulunmuştur aynı unsuru olduğunu belirtmek gibi görünüyor.

Ne oluyor?

Edit: DOM dosyanın kaynağı bir yere aşağıdaki (bu bir kukla adresi) içeren bir HTML dosyası:

<div class="waf-ph-https\:\/\/aserver\.com\/apath\/app\.php5">
  <p class="notification">This is to be substituted.</p>
</div>

Dize "WAF-ph-" dosyasında başka hiçbir yerde bulunur.

Edit:

Aşağıdaki çalışılıyor:

foreach ($document->placeholders as $node) print $document->saveXML($node);

Yukarıdaki DIV metni yedi kez döner.

0 Cevap