Thread Fehler bei XPath-Ausdruck (6 answers)
Opened by Nordlicht at 2010-10-16 06:34

Nordlicht
 2010-10-16 06:34
#141977 #141977
User since
2005-10-16
182 Artikel
BenutzerIn
[default_avatar]
Kann mir jemand mit dieser Fehlermeldung helfen? Ich hab sie schon erfolglos bei google gesucht:
Code: (dl )
error : xmlXPathCompiledEval: 1 objects left on the stack.


Die tritt bei mir auf, wenn ich diesen Ausdruck benutze:

Code: (dl )
1
2
3
4
5
6
my ($index) = $index_file->findnodes('/index');
...
unless ($index->exists('/index/file/@src = $path'))
{
...
}


Die Abfrage liefert konsequent eine positive Rückmeldung, auch wenn der gefragte Eintrag gar nicht vorhanden ist.

Ich bekomme vergleichbare Fehlermeldungen, bei allen XPath-Ausdrücken, in denen ich versuche Variablen zu benutzen, wie in dem o.g. Beispiel $path -- unabhängig vom sonstigen Kontext.

Ich hab kaum Hilfetexte zu dem Thema gefunden und unter den wenigen nur eine einzige Passage zur Verwendung von Variablen...
Quote
A VariableReference evaluates to the value to which the variable name is bound in the set of variable bindings in the context. It is an error if the variable name is not bound to any value in the set of variable bindings in the expression context.

(Quelle: http://www.w3.org/TR/xpath/#section-Expressions)

Leider verstehe ich nicht, was mir dieser Text sagen will... Die Aussage scheint mir zu sein, dass eine leere Variable einen Fehler erzeugt, nur in eine ziemlich umständliche Formulierung verpackt. Und meine Variable ist nicht leer :)

Kann mir Jemand was dazu sagen? Ist das ein Bug oder ist mein Ausdruck falsch? Gibt es ein Tutorial, dass diese Frage etwas eindeutiger klärt?

View full thread Fehler bei XPath-Ausdruck