AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XPath funktioniert nicht

Ein Thema von xaromz · begonnen am 16. Mai 2012 · letzter Beitrag vom 16. Mai 2012
Antwort Antwort
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#1

XPath funktioniert nicht

  Alt 16. Mai 2012, 13:49
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:
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
Gruß
xaromz
Angehängte Dateien
Dateityp: xml test.html.xml (61,9 KB, 7x aufgerufen)
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: XPath funktioniert nicht

  Alt 16. Mai 2012, 14:33
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?
Andreas
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#3

AW: XPath funktioniert nicht

  Alt 16. Mai 2012, 14:41
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
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

AW: XPath funktioniert nicht

  Alt 16. Mai 2012, 15:14
dass der Ausdruck stimmt ist klar
Klar ist es erst dann, wenn man einen unabhängigen Beweis hat. (um den Tomaten-Auf-Den-Augen-Effekt zu vermeiden)

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.
Andreas
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

AW: XPath funktioniert nicht

  Alt 16. Mai 2012, 19:52
Hallo,

dass der Ausdruck stimmt ist klar
Klar ist es erst dann, wenn man einen unabhängigen Beweis hat. (um den Tomaten-Auf-Den-Augen-Effekt zu vermeiden)
Das ist mir schon klar. Aber erstens ist der Ausdruck so einfach, da kann man gar keinen Fehler machen, und zweitens habe ich den Ausdruck natürlich in einem anderen Programm ausprobiert. Ich bin ja nicht blöd.

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.
Ob .Net das selbst macht oder nicht habe ich nicht überprüft, Updates sind alle installiert.

Inzwischen habe ich das Problem gefunden, es gibt einen Knoten
Code:
<a name="poststop" id="poststop"></a>
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).

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz