Bir HTML belgesindeki öğeleri bulmak için PHP'de DOMDocument ve DOMXPath kullanıyorum. Bu belge, & nbsp; ve bu varlıkların XPath çıktısında korunmasını istiyorum.DOMXPath'in HTML varlıklarını genişletmesi nasıl engellenir?
$doc = new DOMDocument();
$doc->loadHTML('<html><head></head><body> Test</body></html>');
$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//body');
foreach($nodes as $node) {
echo $node->textContent;
}
Bu kod aşağıdaki çıktıyı üretir (UTF-8):
[space]Test
Ama istiyorum bu olması:
Test
Belki LibXML bir ilgisi vardır PHP dahili olarak kullanır, ancak HTML öğelerini koruyan herhangi bir işlev bulamadım.
Bir fikrin var mı? olmayan bir fren boşluk karakteri
veya  ' -- the character is always provided to it as a character entity --
& # 160` olarak belirtildi
'[boşluk]' UTF-8 değil. U + 0020 ve U + 00A0 olmadığından emin misiniz? – Alohci
@Alohci: Evet, haklısın, U + 00A0. Ben sadece net yapmak istedim, çıktı nbsp varlık yerine beyaz boşluk ile görüntülenir. – chrisklaussner
@Dimitre: Üzgünüm, ama bu bir XPath özel sorudur. Bir XPath sorgusunun çıktısı ile ilgili. – chrisklaussner