Hallo Leute,
ich habe folgenden XPath-Ausdruck:
descendant::li[contains(@class, 'own-posting')]/ul/li[not(contains(@class, 'visited'))]/span[contains(@class, 'posting')]
|
descendant::li[contains(@class, 'own-posting')]/ul/li[not(contains(@class, 'visited'))]/span/span[contains(@class, 'posting')]
D.h. da kann noch ein zusätzliches span dazwischen stehen.
(Anmerkung: Ich kann nicht einfach descendant::span verwenden, das würde falsche Resultate liefern.)
Durch diese Oder-Verknüpfung ist der Ausdruck natürlich genau doppelt so lahm. Im Prinzip bräuchte ich ja nur ein
descendant::li[contains(@class, 'own-posting')]/ul/li[not(contains(@class, 'visited'))]/(span | /span/span)[contains(@class, 'posting')]
Aber dieses (span | /span/span) in der Mitte ist ein Syntaxfehler. Anscheinend kann ich die Klammerung nur auf den gesamten Ausdruck anwenden, was ihn aber stark verlangsamt.
Wie kann ich das hinsichtlich Performance optimieren und weniger redundant notieren?
Mathias