Buradaki çözümü denedim: Getting attribute using XPath ama bana bir hata veriyor.XPath 1.0'da bir özniteliğin değerini ve düğüm içindeki metni aynı anda almak mümkün mü?
<a href="link.php">Click me!</a>
ben yinelemeli XML ayrıştırma ve href
niteliğini (link.php
) ve aynı zamanda bağlantı metnini (Click me!
) hem almaya çalışıyorum:
böyle bazı XHTML var. değil birlikte ayrı ayrı bu ikisinden birini yaparsanız
Warning: DOMXPath::query(): Invalid type
çalıştıkları, ancak:
<?php
$node = $xpath->query('string(self::a/@href) | self::a/text()', $nodes->item(0));
Bu kod aşağıdaki hata atar
<?php
$node = $xpath->evaluate('string(self::a/@href)', $nodes->item(0));
$node = $xpath->query('self::a/text()', $nodes->item(0));
ben almak aşağıdaki özelliğini kullanıyorsanız tüm değeri (href="link.php"
), yalnızca değeri değil:
<?php
$node = $xpath->query('self::a/@href | self::a/text()', $nodes->item(0));
PHP'de XPath 1.0 kullanarak metin değerlerini aynı anda almanın bir yolu var mı?
onu dize haline getirdi :) - concat (a/@ href, '|', a/text()) – splash58
@ splash58 Bu bana hiç eşleşme vermiyor. Ciddi bir öneri olması gerekiyordu? –
Php xpaht'ın concat'ı destekleyeceğini sanmıyorum. Ayrıca bunu neden xpath (xpath gibi) ile yapmaya çalıştığınızı görmüyorum. Hepiniz doğru DomNode'a sahip görünüyorsunuz. Öyleyse neden '-> getAttribute' ve' -> node_value' kullanılmıyor? –