Anfängerfrage zu XML-Dateien
am 17.01.2010 - 14:42 Uhr in
Hallo,
in punkto Dateiformate bin ich leider absoluter Laie.
Und nun stehe vor einem Projekt, in dem es darum geht, Artikel zu veröffentlichen,
die alle bereits als XML-Dateien existieren. Bisher habe noch keine Datei erhalten,
kann also auch nichts ausprobieren.
Ich würde aber vorher gerne wissen, worauf ich mich da ggfls einlasse.
Nun also meine (vielleicht sehr) naive Fragestellung:
Werden XML-Dateien im Textkörperfeld ebenso erkannt wie HTML-formatierte Codes?
Brauche ich da spezielle Filter?
Oder ein besonderes Importmodul?
Meine Recherche hat da bisher nichts ergeben.
- Anmelden oder Registrieren um Kommentare zu schreiben

Es kommt drauf an, welche
am 17.01.2010 - 15:14 Uhr
Es kommt drauf an, welche Feldbezeichnungen Dein XML Feed hat. Bei den meisten Drupal Lösungen scheitert es am parsen und mappen. Beim Modul FEEDS gibt es einen recht interessanten Thread zum Theme individueller XML Feed: http://drupal.org/node/631104 ! Ich warte auch auf ne funktionierende Lösung :-)
--------------------
Design Probleme einfach mit FF und FIREBUG lösen!
XML
am 17.01.2010 - 15:36 Uhr
Hallo,
ich kann dir gerne einige grundsätzliche Angaben machen, befasse mich persönlich eher sporadisch mit dem Thema. In wie weit Drupal selber Schnittstellen hat oder unterstützt habe ich bisher nicht recherchiert, ausser der Tatsache dass JSON-Objekt Notation möglich ist.
XML kann man gut und einfach mit den DOM Funktionen von Javascript auslesen. Das Schreiben von XML geschieht bei mir mit PHP und dem Domdokument().
Wenn du die Daten nur auslesen musst, so würde ich das mit JS machen. Hast du PHP Erfahrung - wäre das ev. eine gute/bessere Alternative vor allem wenn du auch Dokumente verändern musst.
Bei XML Dateien solltest du den Whitespace und Umbrüche beachten/entfernen vor einer Bearbeitung, ausser das XML wurde in einer einzigen Zeile in die Datei geschrieben.
Alternativ hole ich die Werte meist anhand von eindeutigen ID's oder auch Klassen. Dabei kannst du die Elemente z.B. mit "getElementById("id")... und ähnlichem holen. Eigentlich reden wir hier von "AJAX", in PHP wie gesagt eine Instanz von "Domdocument()".
Vor allem musst du wissen, wie du eine Verbindung aufbaust, diese wird in JS und PHP ähnlich gemacht, auch wenn die Methoden nicht ganz gleich sind.
Wenn die Datei geladen ist, so kannst du dich durchhangeln, wie du es auch für eine HTML - JS/DOM Manipulation machen würdest...
Auf selfhtml findest du eine gute Übersicht zu den JS Möglichkeiten. IN PHP müsstest du ein geeignetes Buch zu Rate ziehen, findest aber sicher auch dazu im Internet Beschreibungen.
Viel Spass
Fredi
EDIT: habe die Frage zu wenig genau gelesen :-(
Also XML solltest du bearbeiten und nur die Inhalte (Texte etc.) auslesen. Die Artikel werden wohl immer dieselbe Form haben, also ein Tag wo z.B. ein Titel drin steht. Ein Tag für Bilder, und weitere Tags für Texte.
Ob du diese Texte dann ohne weitere Bearbeitung verwenden kannst, hängt ja auch davon ab, ob ungünstige Tags entfernt werden müssen.
Das Document einfach vollständig einlesen, das würde ich auf keinen Fall machen, vor allem wenn auch noch die DTD da drin ist.
Einmal angepasst, solltest du das immer gleich verwenden können, in etwa wie eine DB-Ausgabe ...
Zu RSS kann ich leider nicht all zu viel sagen.
Wow! Danke!
am 18.01.2010 - 09:44 Uhr
Das sind ja schon mal Hinweise, mit denen ich weiter denken und recherchieren kann.
Vielen Dank.
----------------------------------
Hallo Quixxel Zitat: Werden
am 18.01.2010 - 13:21 Uhr
Hallo Quixxel
Werden XML-Dateien im Textkörperfeld ebenso erkannt wie HTML-formatierte Codes?
Brauche ich da spezielle Filter?
Oder ein besonderes Importmodul?
Um Deine Frage(n) direkt zu beantworten:
Ja
Nein
Jein :) = kommt darauf an
zur ersten Frage:
XML und HTML sind verwand mit einander. Bzw schimpft sich
die aktuelle HMTL Version ja XHTML.
Beide sind sog. Auszeichnungs-'Sprachen' (Markup Language) und
bestehen aus TAGS (zb. BODY, HEAD,..).
Wobei HTML die Auszeichnungs-Sprache für 'Hyper'Text darstellt
(sprich mit einander-verknüpfte Text Verlinkungen = Web).
Dagegen bedeutet das X in XML 'Extensible' (=erweiterbar)
meint also ein Erweiterbare Auszeichnungssprachen.
Erweiterbar dahin gehend, das bei HTML die Auszeichnungen /Tags
strikt festgelegt sind (durch das w3c)
Bei XML kannst du eigene Tags definieren, sie müssen nur
bestimmte regeln einhalten (keine Umlaute, Validität etc.).
Bei einem Artikel könnte ich mir jetzt folgende Struktur
vorstellen:
// Das XML Dokument heisst zb daten.xml
<artikel>
<autor></autor>
<titel></titel>
<datum></datum>
<teaser></teaser>
<text></text>
</arttiel>
Das habe ich mir jetzt so ausgedacht und wie
Du siehst macht das durchaus Sinn in deinem Fall ein XML
so anzulegen.
Warum?
ok
Das XML kann von Dir (=Mensch) gelesen und verstanden werden (hoffentlich)
und GLEICHZEITIG aber auch zb von Computer Programmen.
Wieso?
Es gibt ein 'root'(=Wurzel) Element 'Artikel' (ein XML Dokument muss
IMMER aus einem Wurzel Element bestehen).
Dieses Wurzelemelent (auch parent bzw Eltern-element) hat
verschiedene Kinder-/ Knoten-/ Elemente (hier Autor, Titel,Datum..).
Die Bezeichnung der Elemente (Tags) ist wie gesagt freivergebbar
und selbsterklärend.
Wenn das XML wohlgeformt ist (zb. alle Tags sind geschlossen,
Tagnammen bestehn nicht aus Umalten/Sonderzeichen, etc) dann
kann das XML auch von 'Maschinen' gelesen werden, also zb von
PHP (und somit auch von Drupal weil das ja auf PHP basiert).
Es ist dann also möglich dem PHP Skript zusagen:
lies das daten.xml ein, und gebe mir aus dem root element
'Artikel' den Inhalt des Kind-Elements 'Autor' den Inhalt aus.
Weshalb macht man das so?
Dadurch kann man zb. automatisiert millionen von Datensätze
automatisiert verarbeiten* ...
klasse, oder?
Zu deiner letzten Frage, kann man tatsächlich erst genaue
Antworten / Wege finden wenn klar ist, wie das XML
das Dir dann vorliegt strukturiert ist.
Wenn Du es hast und nicht weiterkommst frag einfach nochmal
nach...
*BTW: Ajax basiert auch auf einen solchen XML
Datenaustausch. Oder die berühmten Webservices..
etc
mehr Infos zum Eintsig:
XML
http://de.wikipedia.org/wiki/Extensible_Markup_Language
HTML
http://de.wikipedia.org/wiki/Html
okeh
Ich hoffe ich hab Dich nicht noch mehr verwirrt
als nötig.
Wünsche Dir aber viel Spass und Erfolg bei deinem
Einstieg in die wunderbare Welt der (XML) Schwerkraft!
grüße
Stefan
phpberlin schrieb Ich hoffe
am 18.01.2010 - 13:28 Uhr
Ich hoffe ich hab Dich nicht noch mehr verwirrt
als nötig.
Nein, überhaupt nicht.
Dein Beitrag ist für mich wirklich sehr lehrreich.
Danke!
----------------------------------
phpberlin schrieb Hallo
am 18.01.2010 - 19:23 Uhr
Hallo Quixxel
// Das XML Dokument heisst zb daten.xml
<artikel>
<autor></autor>
<titel></titel>
<datum></datum>
<teaser></teaser>
<text></text>
</arttiel>
grüße
Stefan
Hallo zusammen,
Möchte gerne etwas berichtigen, "ob man das XML ohne Bearbeitung übernehmen könne":
XHTML/HTML kennt keine eigenen Tags wie oben aufgeführt und die in XML durchaus Verwendung finden. In meinen Augen kann man eine XML Datei nicht ohne Bearbeitung auf einen Editor loslassen...was soll dieser mit selbst definierten Tags auch anfangen.
Man könnte ev. diese einfach mit einem eigenen Filter bearbeiten.
Gruss
Fredi