AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Metadaten aus Webdokument filtern
Thema durchsuchen
Ansicht
Themen-Optionen

Metadaten aus Webdokument filtern

Ein Thema von Opa Knack · begonnen am 26. Nov 2008 · letzter Beitrag vom 28. Nov 2008
Antwort Antwort
Opa Knack

Registriert seit: 28. Dez 2004
Ort: Köln
166 Beiträge
 
#1

Metadaten aus Webdokument filtern

  Alt 26. Nov 2008, 16:01
Hallo,

weder Forum noch Google konnten mir bei dem Problem helfen:

Ich erstelle aktuell einen Webeditor. Hierbei sollen die Metadaten herausgefiltert werden. Soweit kein Problem, mit einem einfachen, selbstprogrammierten Parser ist das schnell erledigt, wobei sich das Problem ergibt, dass die Notation nicht immer gleich ist:

Delphi-Quellcode:
<meta name="x" content="x">

oder auch

<meta content="x" name="x">
Diese Daten sollen extrahiert und nach gesondert Bearbeitung wieder eingebunden werden können.

Wenn ich die Seite einlese, werden die Daten extrahiert und bis zum Schließen der Seite in eigenen Edits "aufbewahrt". Wenn nun in der Zwischenzeit direkt im Quelltext Änderungen vorgenommen wurden, stellt sich das Problem, dass der Originaltext, der ersetzt werden sollte, nicht mehr aufzufinden ist. Zwar ist es möglich, dazu ein Workaround zu schreiben, aber die Performance dürfte dabei ziemlich in den Keller gehen, da ja alle Variationen der Notation durchgegangen werden müßten.

Meine Hoffnung war, dass ich einen Parser finde, der direkt auf die Meta-Objekte zugreifen kann, wobei ich bei DOM bisher nicht weitergekommen bin. Kennt jemand einen solchen Parser bzw. hat hierzu schon einmal eine Lösung gefunden/erstellt?

Danke schonmal vorab
Opa
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: Metadaten aus Webdokument filtern

  Alt 26. Nov 2008, 17:40
Hallo,

bin mir nicht sicher, ob ich die Frage richtig verstanden habe:

Würde so vorgehen:

Alle META-Tags aus der überarbeiteten Quelle rausschmeißen und die aus den Edits im Quelltext direkt hinter <head> einfügen. Die Reihenfolge ist (meines Wissens) beliebig, wenn aus
Code:
<meta name="x" content="x">
Code:
<meta content="x" name="x">
wird, ist das eigentlich wurscht.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: Metadaten aus Webdokument filtern

  Alt 26. Nov 2008, 17:48
Ich kann dir jetzt keinen konkreten Code liefern, weil ich mich dazu mit ihnen nicht gut genug auskenne, aber wenn du statt (oder zusätzlich zu) deinem Parser Regular Expressions verwendest, solltest du das eigentlich so hinbekommen, dass die Reihenfolge irrelevant ist
  Mit Zitat antworten Zitat
Opa Knack

Registriert seit: 28. Dez 2004
Ort: Köln
166 Beiträge
 
#4

Re: Metadaten aus Webdokument filtern

  Alt 26. Nov 2008, 22:09
Hallo,

Danke schon mal für die ersten Gedanken. Das Problem ist nicht, dass die Metadaten in irgendeiner besonderen Reihenfolge stehen müssen, sondern dass ich eine performante Lösung suche, die z. B. über etwas wie das DOM auf die einzelnen Metaobjekte zugreift. Zum Beispiel, dass ich, wenn ich die Keywords auslesen will, einfach auf das Objekt "Keywords" zugreifen kann, und dass ich, wenn ich darin etwas geändert habe, in eben dieses Objekt schreiben kann.

Ich habe mir einen Parser geschrieben, der alle Tags, die mit "<meta" anfangen, ausliest, diese dann nach "name" auswertet und in verschiedene Edits verteilt. Nach der Bearbeitung werden alle Tags, die mit "<meta" anfangen, gelöscht, um sie mit den bearbeiteten zu ersetzen. Das ist nicht unbedingt der effektivsten Varianten eine, und ich würde sie gerne durch eine schnellere ersetzen.

Hat jemand eine Idee?

Danke und Gruß
Opa
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#5

Re: Metadaten aus Webdokument filtern

  Alt 27. Nov 2008, 09:41
Hallo,

hier hat sich schon jemand mit dem Thema befasst, vielleicht hilft Dir das weiter:
http://www.augos.com/software/markuptoken.html
  Mit Zitat antworten Zitat
Opa Knack

Registriert seit: 28. Dez 2004
Ort: Köln
166 Beiträge
 
#6

Re: Metadaten aus Webdokument filtern

  Alt 28. Nov 2008, 15:49
Hallo,

ja, genau so etwas in der Richtung habe ich gesucht (zumindest, wenn man der Demo nachgehen kann). Leider kriege ich aber den Source nicht ans Laufen. Im Source wird zuerst einmal nach einer Unit verlangt, die ich dann auch noch auf der Webseite des Erstellers gefunden habe. Trotzdem steigt Delphi mir mit der Fehlermeldung, dass er "jphash.dcu" nicht schreiben könne, aus. Falls da noch jemand eine Idee hat, bin ich für Tipps dankbar...

Danke und Gruß
Opa
  Mit Zitat antworten Zitat
martin_

Registriert seit: 19. Mai 2008
Ort: Österreich
89 Beiträge
 
#7

Re: Metadaten aus Webdokument filtern

  Alt 28. Nov 2008, 16:39
Die Unit befindet sich hier.
Dann in Delphi auf Projekt --> Optionen und Verzeichnisse Bedingungen.
Dort die Punkte Ausgabeverzeichnis, Ausgabe für Units ändern. Suchpfad hinzufügen und es sollte funktionieren.
  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 14:36 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