![]() |
XPath funktioniert nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich bin gerade dabei, einen semantischen Parser für Webseiten zu bauen. Zum Test habe ich einen Seite der Delphi-PRAXiS genommen, um sie zu analysieren. Beim Herumspielen ist mir aufgefallen, dass ich den Container, in dem sich die Postings befinden, nicht per XPath finden kann. Mein Query "//div[@id='posts']" gibt mir ein leeres Ergebnis, während "//*[@id='posts']" funktioniert. Kann mir das einer erklären?
Code:
Gruß
var settings = new XmlReaderSettings {DtdProcessing = DtdProcessing.Ignore, XmlResolver = null};
var xmlReader = XmlReader.Create(File.OpenRead("test.html.xml"), settings); var xmlDoc = new XmlDocument(); xmlDoc.Load(xmlReader); var nodes = xmlDoc.DocumentElement.SelectNodes("//div[@id='posts']"); // Liste ist leer //var nodes = xmlDoc.DocumentElement.SelectNodes("//*[@id='posts']"); // Element wird gefunden xaromz |
AW: XPath funktioniert nicht
Also der XPath-Ausdruck //div[@id='posts'] findet bei mir genau ein Element in der Testdatei.
Getestet mit Altova XML-Spy. Ebenso wie bei //*[@id='posts']. Also muss dein Parser einen Bug haben. MSXML 6.0 installiert? MSXML 4.0 SP3 installiert? |
AW: XPath funktioniert nicht
Hallo,
dass der Ausdruck stimmt ist klar. Meine Frage ist, warum er nicht funktioniert bzw. ob ich mit einem anderen Ausdruck zum selben Ergebnis komme. MSXML in Version 6 ist ja bei Win7 dabei, ich habe aktuell MSXML6 SP3 und MSXML4 SP3 installiert. Gruß xaromz |
AW: XPath funktioniert nicht
Zitat:
Die Frage ist nun: stützt sich die Klasse XmlDocument auf die MSXML Biblitotheken oder handelt es sich komplett um managed Code? Welches .NET Framework wird benützt? Und natürlich sollte man auch prüfen, ob auch alle Updates für das .NET Framework installiert sind. |
AW: XPath funktioniert nicht
Hallo,
Zitat:
Zitat:
Inzwischen habe ich das Problem gefunden, es gibt einen Knoten
Code:
Ist dieser vorhanden, läuft mein Query ins Leere, ohne funktioniert es. Warum kann ich aber nicht sagen. Ich behelfe mir erstmal damit, Links ohne Referenz zu löschen, bevor ich ans Analysieren gehe (die brauche ich eh nicht).
<a name="poststop" id="poststop"></a>
Gruß xaromz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz