Thema: Htmlentitys in XML Dateien

Hallo zusammen,

kann mir einer sagen wie das mit Htmlentitys in XML Dateien ist? Wenn ich eine xml Datei erstelle und in dieser Umlaute habe kriege ich vom Internet Explorer einen Fehler wegen ungültiger Zeichen, wenn ich die Zeichen in html Entitys umwandel (z.B. & Auml ; ) kriege ich einen Fehler das nicht deklarierte Entitys verwendet werden.

Wie deklarier ich denn die Entitys?

thx, sel.

2

Re: Htmlentitys in XML Dateien

Hi Sel,

Du musst die Dinger im DTD deklarieren anscheinend:

 <!ENTITY Auml "Ä">
 <!ENTITY auml "ä">
 

HTH, tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

3

Re: Htmlentitys in XML Dateien

Oder man stellt den richtigen Zeichsatz ein und arbeitet mit Umlauten...

Mal wieder schneller geposted als gedacht....

thx für die Antwort.

sel.

4

Re: Htmlentitys in XML Dateien

Ja, das ginge auch <img src="/forum/images/graemlins/smile.gif" alt="" />)

UTF-8 wär nich schlecht, oder ISO-8859-15...

Greetz und viel Spaß noch, ich arbeite grad an einem PHP-Parser, der XMl in Datenbanken schreiben kann <img src="/forum/images/graemlins/smile.gif" alt="" />)

tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

5

Re: Htmlentitys in XML Dateien

...ich arbeite grad an einem PHP-Parser, der XMl in Datenbanken schreiben kann <img src="/forum/images/graemlins/smile.gif" alt="" />)

Interessiert mich.

Ich denk ist aber schwierig die Unterscheidung von Attribut->Attribut(db) oder Tag->Attribut(db) zu Treffen.

Was mich noch mehr interssiert: Ein Parser der aus Datenbankinhalten xml generiert. Da ist mir noch ziemlich schleierhaft wie das funktioniert...

sel.

Re: Htmlentitys in XML Dateien

phpMyAdmin macht aus der tabelle sowas (pro zeile ein <tabelle> eintrag)
<datenbank>
     <tabelle>
         <feld_1_id>1</feld_1_id>
         <feld_2>Bla</feld_2>
         <feld_3>fup</feld_3>
     </tabelle>
     <tabelle>
         <feld_1_id>2</feld_1_id>
         <feld_2>Bla</feld_2>
         <feld_3>fup</feld_3>
     </tabelle>
</datenbank>
(natürlich mit den bezeichnungen der datanbank, tabelle und den feldnamen)

7

Re: Htmlentitys in XML Dateien

Das würde helfen eine Tabelle nach xml zu portieren, interessant würde es natürlich erst bei den relationen werden.

Wenn also z.B. eine Tabelle

 Auto
 id            | polKz                 | Typ
 -----------------------------------------------------------------------
 1              B 123                   Audi
 2              DT 456                  BMW
 

eine Tabelle

 Person
 id            | Name
 -----------------------------------------------------------------------
 1              Susi
 2              Petra
 

und eine Tabelle

 AutoBenutzung
 Person      | Auto
 --------------------------------------------------------------------------
 1                1
 1                2
 2                 1
 

und ein parser der einem Automatisch ein xml Dokument in der Form

 <Person>
     <Name>Susi</Name>
     <AutoBenutzung>
         <Auto>
             <PolKz>B 123</PolKz>
             <Typ>Audi</Typ>
         </Auto>
         <Auto>
             <PolKz>DT 456</PolKz>
             <Typ>BMW</Typ>
         </Auto>
     </AutoBenutzung>
 </Person>
 <Person>
     <Name>Petra</Name>
     <AutoBenutzung>
         <Auto>DT 456</Auto>
     </AutoBenutzung>
 </Person>
 

generiert...

Auch wenn es kein Parser für die Aufgabe gibt. Wie geht man bei so was vor?

cu, sel.

8

Re: Htmlentitys in XML Dateien

Hi Sel,

ein derartiger Parser wäre zwar machbar, würde ich aber nicht empfehlen, denn:
Die Relationen zwischen den Tabellen ist "Business Logik"... und die DB hat keinen Plan davon, genausowenig
wie der Parser.
Ich würde daher schon empfehlen, die Tabellenstruktur 1:1 ins XML zu übersetzen...
Es sei denn Du planst eine Art "Frontend"... dann wär das okay.
Im Prinzip müsste man diesem Parser dann eine Art Mapping geben, damit er sieht, dass
AutoBenutzung.Person => Person.ID
AutoBenutzung.Auto => Auto.ID

und dann eben entsprechend die Felder zusammensucht...

HTH, tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

9

Re: Htmlentitys in XML Dateien

Ich würde daher schon empfehlen, die Tabellenstruktur 1:1 ins XML zu übersetzen...

Hast du nen Tutorial oder gute Seiten auf denen erklärt ist wie man vorgeht, welche php Funktionen man nutzen kann etc?

Ich hab schon zwei - drei mal xml Dateien über nen php Parser geparst, hab aber noch nie selber xml Dateien mit php generiert...

thx, sel.

10

Re: Htmlentitys in XML Dateien

Hi Sel,

http://www.hotscripts.com/cgi-bin/searc … &mh=25

Guck mal hier, da gibt´s einige Klassen und Scripte, die MySQL in XML wandeln können....
ansonsten denk ich mal, dass die Funktionen mysql_list_tables(), mysql_list_fields() und mysql_field_flags() nützlich sein könnten, um dynamisch die Datenbankstruktur einer gegebenen Datenbank zu analysieren und entsprechend zu reagieren...

HTH, tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

11

Re: Htmlentitys in XML Dateien

Hi.

> Ich denk ist aber schwierig die Unterscheidung von Attribut->Attribut(db) oder
> Tag->Attribut(db) zu Treffen.

Das sollte kein Problem sein. Schwieriger finde ich den Punkt der Verschachtelungen vom XML-Tags z.B. in folgendem Ausdruck:

<text>Das ist ein <amp>hervorgehobenes</amp> Wort</text>

Wie hast du das gelöst?

Und was den "Parser" RDB->XML angeht, so ist das doch kein Problem. Du musst ja nur die Datenbank Tabelle für Tabelle, Zeile für Zeile durchgehen und die Inhalte formatiert in eine Datei drucken.

Natürlich musst du zuvor festlegen, wie die Daten ausgespuckt werden sollen, also z.B. so:
[code]
<table name='Autos'>
     <row id=15>
         <field name='Marke'>VW</field>
         <field name='Typ'>Golf 3</field>
     </row>
     <row id=17>
         <field name='Marke'>BMW</field>
         <field name='Typ'>525i</field>
     </row>
</table>
[/code]

...oder vielleicht eher so:

[/code]
<Autos>
     <entity>
         <id>15</id>
         <Marke>VW</Marke>
         <Typ>Golf 3</Typ>
     <entity>
     <entity>
         <id>15</id>
         <Marke>BMW</Marke>
         <Typ>525i</Typ>
     <entity>
</Autos>
[/code]

oder auch so:

[code]
<table name="Autos">
     <entity id="15" Marke="VW" Typ="Golf 3" />
     <entity id="17" Marke="BMW" Typ="525i" />
</table>
[/code]

Und was die Relationen Angeht, so gäbe es allenfalls die Möglichkeit, die Referenzen nach einer bestimmten Syntax zu codieren, damit der Parser die Zuordnungen eindeutig zuweisen kann. Allerdings hast du da ruck zuck unzählige Redundanzen und es dürfte bei etwas komplexeren Datenstrukturen schon schwierig werden ein sauberes XML-File zu generieren, weil dann eben mitunter, um Endlosschleifen zu vermeiden an bestimmten Stellen doch anstatt der eigentlichen Objekte Referenzen auf diese stehen müssten.

Apropos:
Hat hier irgendwo nicht neulich jemand gefragt, ob man quasi sowas wie Symlinks auf XML-Objekte in XML formatieren kann (kann es nicht finden - vielleicht war es auch woanders...). Also vielleicht was in der Art:

[code]
<Auto define_object:obj_id="xyz" id="15">
     <Marke>VW</Marke>
</Auto>

<Person>
     <Name>Basti</Name>
     <faehrt><link_to_object:obj_id="xyz"></faehrt>
</Person>
[/code]

...ich meine natürlich nicht eine Syntax, die ein entsprechender Parser verstehen kann, sondern eben eine XML-Symtax, die eben dieses Konstrukt per se festhält.

Basti