2017-06-16 2 views
0

Ich habe diesen Code in einer Klasse:DOMXPath :: query(): Ungültige Ausdruck

... 
$document = new DOMDocument('1.0', 'utf-8'); 
$document->preserveWhiteSpace = false; 
$content = mb_convert_encoding($content, 'HTML-ENTITIES', 'utf-8'); //this fix problems with cyrilic text 
if ([email protected]$document->loadHtml($content)) 
    return false; 
$xpath = new DOMXpath($document); 
$node_list = $xpath->query($this->target->query_name()); // getting warning here 
... 

Der Code von QUERY_NAME Methode (in anderen Klasse und Datei befindet) ist:

public function query_name($if_arg_needed = ""){ 
    return "//*/*[@class=\'product_name\']"; 
} 

Beide Dateien, die meine Klassen enthalten, befinden sich in utf-8. , warum ich die Warnung erhalten: Warnung: DOMXPath :: query(): Ungültiger Ausdruck in ...

Dieser Code funktioniert:

... 
$xpath = new DOMXpath($document); 
$tempStr = "//*/*[@class=\'product_name\']"; 
$node_list = $xpath->query($tempStr); 

Antwort

1

Sie sollten die XPath wie folgt festgelegt:

$tempStr = "//*[@class='product_name']";

oder

$tempStr = '//*[@class="product_name"]';

+0

OMG! Diese Schrägstriche !!! Ich habe sogar vergessen, warum ich sie dort platziert habe. Vielen Dank Lauda! –

Verwandte Themen