Mailinglisten-Archive |
Hallo Enrico, Enrico Weigelt wrote: > Der Loader selbst steckt in article_load_xml.inc, im File xml-escape.inc > steckt ein kleiner workaround für ein Problem das ich mit expat hab: > er meckert, daß bestimmte entities nicht definiert sind ... ja, Du machst Dir das Leben einfacher, wenn Du Dein XML-Dokument (Beispiel war nicht dabei) so beginnst: <?xml version="1.0" encoding="ISO-8859-1"?> Damit sagtst Du dem Parser auch, dass er Umlaute verwenden darf (natürlich nicht für die Tags aber für die Werte). Bei UTF-8 musst Du die Zeichen codieren, aber nicht mit HTML-Entities sondern z.B. so für "ü" ü Also mit hexadezimalem Unicode-Zeichen. (Oder Du müsstest die Entities erst deklarieren, ich weiß aber nicht, ob Expat das verarbeitet.) BTW: Deine str_replace-Verwendung finde ich etwas eigenartig. Wozu diese Verschachtelung. Du kannst doch z.B. $search und $replace beides als Array übergeben. > <snip> > >>Ich fürchte da hat jeder seine eigenen Ansprüche. Sicherlich gibt es da >>auch schon fertige Lösungen in XML für die verschiedensten Zwecke. Hast >>Du mal recherchiert? > > Nein, dazu bin ich noch nicht gekommen - das eigene Problem geht vor ;-) > Ich hatte ja erst gedacht, daß ich für verschiene Artikeltypen > untschiedliche Schemata bräuchte, aber (abgesehen von Bildern) ist es > mir bis dato erstmal gelungen, alle meine Erfordernisse in einem einfachen > Schema unterzubringen. Beispiele siehe Attachement. Apropos Schema. (siehe Betreff) Bei XML-Schema erwarte ich eine Deklaration Deines Dokumenttyps, eben mit "XML Schema" http://www.w3.org/XML/Schema Also vorsichtig mit den Begriffen. ;-) > *schnief* > Muß eingestehen, daß ich noch nicht wirklich weisß, wie die > Namespaces richtig funktionieren. Es gibt da sicherlich eine Menge Leute, die Dir das besser erklären können als ich. Prefixe sind dann sinnvoll, wenn Du mit Elementen oder Attributen arbeitest, die sich auf verschiedene Namensräume beziehen. Wenn Du HTML verwenden willst, könntest Du das natürlich auch so machen wie XSLT. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> Damit trennst Du optisch Deine Tags von den HTML-Tags, musst das aber wie hier deklarieren. Ich würde Dir aber eher raten, den HTML-Code stattdessen so zu verpacken: <artikel_text> <![CDATA[<p>Ein Absatz in HTML, der in mein Template eingeschleust wird, ohne sich mit meiner Artikel-XML zu vermischen</p>]]></artikel_text> > Ich hatte ja erst gedacht, ich könnte dem Expat einfach sagen, daß > er nur alle Tags mit einem bestimmten Prefix ("ARTICLE:") auswerfen und > alles andere als CDATA behandeln soll. Leider hab ich dazu nix gefunden, > sodaß ich das dann selbst machen mußte. Nein, so ist das auch nicht gedacht. s.o. [...] > hmm, ich kenne mich mit XML noch nicht wirklich aus. Vielleicht kannst Du > das ja mal etwas konkretisieren :) Ich bin da auch noch nicht am Ende meines Weges, aber ich empfehle Dir dringend, SelfHTML8 von Stefan Münz herunterzuladen und das XML-Kapitel zu lesen. Da ist eingentlich alles so weit zusammengefasst und gut erklärt, dass man mit XML arbeiten kann. >>>Das Ganze wird von meinem Loader in eine einfache, verschachtelte >>>Array-Struktur gelegt, mit der ich dann Templates fülle. >> >>Man könnte dafür natürlich auch XSLT verwenden. Dann spart man sich den >>Umweg über Deinen Loader. ;-) > > Das braucht aber wieder eine entsprechende extension und frißt sicher > auch 'n bissl Zeit. Außerdem bau ich nunmal generell alles mit patTemplate, > und da möchte ich nicht noch XSLT dazwischenwerfen. Wenn es darum geht, aus den Artikeln Webseiten zu machen, muss das ja nicht in Echtzeit erfolgen. Du kannst mit Sablotron ja XHTML-Seiten generieren und diese dann für den Benutzer bereitstellen. Björn Schotte würde dafür XML-Transformer nehmen. ;-) Als Server-Mensch müsste doch das auch für Dich interessant sein: http://xml.apache.org/xalan-c/index.html (Gibt es auch als Java-Version.) So, jetzt muss ich aber wieder meiner Beschäftigung nachgehen. ;-) Viele Grüße Peter -- http://www.media-palette.de/tools/xml-line/
php::bar PHP Wiki - Listenarchive