php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > XML
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 101 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 21-12-2007, 19:57
LastBoyScout
 Newbie
Links : Onlinestatus : LastBoyScout ist offline
Registriert seit: Dec 2007
Beiträge: 8
LastBoyScout ist zur Zeit noch ein unbeschriebenes Blatt
Question BMEcat XML Datei in MySQL laden

Hallo zusammen,

Da ich bis dato mit XML noch nix zu tun hatte, hab ich da mal ein kleines Problem:

Ich möchte gern die Daten aus einer BMEcat XML- Katalogdatei mittels PHP in eine Datenbank Importieren, weis aber nicht wie ich das am besten Anstelle?

Hier mal der Inhalt der catalog.xml zur Veranschaulichung:


<?xml version="1.0" encoding="iso-8859-1"?>
<BMECAT version="1.2" xmlns="http://www.bmecat.org/bmecat/1.2/bmecat_new_catalog">
<HEADER>
<GENERATOR_INFO>Created by LxBMECAT 1.0</GENERATOR_INFO>
<CATALOG>
<LANGUAGE>DEU</LANGUAGE>
<CATALOG_ID></CATALOG_ID>
<CATALOG_VERSION>1.0</CATALOG_VERSION>
<CURRENCY>EUR</CURRENCY>
<DATETIME type="generation_date">
<TIME>18:33:56</TIME>
<DATE>2007-12-19</DATE>
</DATETIME>
</CATALOG>
<SUPPLIER>
<SUPPLIER_NAME>Lexware faktura+auftrag</SUPPLIER_NAME>
</SUPPLIER>
</HEADER>
<T_NEW_CATALOG>
<CATALOG_GROUP_SYSTEM>
<CATALOG_STRUCTURE type="root">
<GROUP_ID>1</GROUP_ID>
<GROUP_NAME>Produktgruppen</GROUP_NAME>
<PARENT_ID>0</PARENT_ID>
<GROUP_DESCRIPTION> </GROUP_DESCRIPTION>
<USER_DEFINED_EXTENSIONS>
<UDX.ARTICLE_SORT_ORDER>0</UDX.ARTICLE_SORT_ORDER>
</USER_DEFINED_EXTENSIONS>
</CATALOG_STRUCTURE>
<CATALOG_STRUCTURE type="leaf">
<GROUP_ID>2</GROUP_ID>
<GROUP_NAME>Bücher</GROUP_NAME>
<PARENT_ID>1</PARENT_ID>
<USER_DEFINED_EXTENSIONS>
<UDX.ARTICLE_SORT_ORDER>0</UDX.ARTICLE_SORT_ORDER>
</USER_DEFINED_EXTENSIONS>
</CATALOG_STRUCTURE>
<CATALOG_STRUCTURE type="leaf">
<GROUP_ID>3</GROUP_ID>
<GROUP_NAME>Lexware Pro</GROUP_NAME>
<PARENT_ID>1</PARENT_ID>
<USER_DEFINED_EXTENSIONS>
<UDX.ARTICLE_SORT_ORDER>0</UDX.ARTICLE_SORT_ORDER>
</USER_DEFINED_EXTENSIONS>
</CATALOG_STRUCTURE>
<CATALOG_STRUCTURE type="leaf">
<GROUP_ID>4</GROUP_ID>
<GROUP_NAME>Software Lexware</GROUP_NAME>
<PARENT_ID>1</PARENT_ID>
<USER_DEFINED_EXTENSIONS>
<UDX.ARTICLE_SORT_ORDER>0</UDX.ARTICLE_SORT_ORDER>
</USER_DEFINED_EXTENSIONS>
</CATALOG_STRUCTURE>
<CATALOG_STRUCTURE type="leaf">
<GROUP_ID>5</GROUP_ID>
<GROUP_NAME>Software/Stückliste</GROUP_NAME>
<PARENT_ID>1</PARENT_ID>
<USER_DEFINED_EXTENSIONS>
<UDX.ARTICLE_SORT_ORDER>0</UDX.ARTICLE_SORT_ORDER>
</USER_DEFINED_EXTENSIONS>
</CATALOG_STRUCTURE>
</CATALOG_GROUP_SYSTEM>
<ARTICLE>
<SUPPLIER_AID>5</SUPPLIER_AID>
<MIME_INFO>
<MIME>
<MIME_TYPE>image/jpeg</MIME_TYPE>
<MIME_SOURCE>/article_images/lexware.jpg</MIME_SOURCE>
<MIME_PURPOSE>normal</MIME_PURPOSE>
</MIME>
</MIME_INFO>
<ARTICLE_ORDER_DETAILS>
<ORDER_UNIT>C62</ORDER_UNIT>
</ARTICLE_ORDER_DETAILS>
<ARTICLE_DETAILS>
<DESCRIPTION_SHORT>Lexware financial office 2005</DESCRIPTION_SHORT>
<DESCRIPTION_LONG>Die ideale Komplettlösung - Buchhaltung, Faktura und Lohnabrechnung in einem Paket.</DESCRIPTION_LONG>
</ARTICLE_DETAILS>
<ARTICLE_FEATURES>
<FEATURE>
<FNAME>Gewicht</FNAME>
<FVALUE>0.800000</FVALUE>
</FEATURE>
<FEATURE>
<FNAME>artikelnr</FNAME>
<FVALUE>109017</FVALUE>
</FEATURE>
<FEATURE>
<FNAME>beschreibung</FNAME>
</FEATURE>
</ARTICLE_FEATURES>
<ARTICLE_PRICE_DETAILS>
<ARTICLE_PRICE type="net_list">
<PRICE_AMOUNT>249.9000</PRICE_AMOUNT>
<TAX>0.1600</TAX>
</ARTICLE_PRICE>
</ARTICLE_PRICE_DETAILS>
<USER_DEFINED_EXTENSIONS>
<UDX.ARBITRARY_DATA>3;249.9000</UDX.ARBITRARY_DATA>
</USER_DEFINED_EXTENSIONS>
</ARTICLE>
<ARTICLE>
<SUPPLIER_AID>6</SUPPLIER_AID>
<MIME_INFO/>
<ARTICLE_ORDER_DETAILS>
<ORDER_UNIT>C62</ORDER_UNIT>
</ARTICLE_ORDER_DETAILS>
<ARTICLE_DETAILS>
<DESCRIPTION_SHORT>Lexware financial office pro</DESCRIPTION_SHORT>
<DESCRIPTION_LONG>Das neue Lexware financial office pro ist die Traumkombination für ihre Buchhaltung.</DESCRIPTION_LONG>
</ARTICLE_DETAILS>
<ARTICLE_FEATURES>
<FEATURE>
<FNAME>Gewicht</FNAME>
<FVALUE>0.400000</FVALUE>
</FEATURE>
<FEATURE>
<FNAME>artikelnr</FNAME>
<FVALUE>109018</FVALUE>
</FEATURE>
<FEATURE>
<FNAME>beschreibung</FNAME>
</FEATURE>
</ARTICLE_FEATURES>
<ARTICLE_PRICE_DETAILS>
<ARTICLE_PRICE type="net_list">
<PRICE_AMOUNT>688.7900</PRICE_AMOUNT>
<TAX>0.1600</TAX>
</ARTICLE_PRICE>
</ARTICLE_PRICE_DETAILS>
<USER_DEFINED_EXTENSIONS>
<UDX.ARBITRARY_DATA>3;688.7900</UDX.ARBITRARY_DATA>
</USER_DEFINED_EXTENSIONS>
</ARTICLE>
<ARTICLE_TO_CATALOGGROUP_MAP>
<ART_ID>5</ART_ID>
<CATALOG_GROUP_ID>5</CATALOG_GROUP_ID>
</ARTICLE_TO_CATALOGGROUP_MAP>
<ARTICLE_TO_CATALOGGROUP_MAP>
<ART_ID>6</ART_ID>
<CATALOG_GROUP_ID>3</CATALOG_GROUP_ID>
</ARTICLE_TO_CATALOGGROUP_MAP>
</T_NEW_CATALOG>
</BMECAT>

Meine Datenbank enthält folgende Tabellen und Felder, welche mit dem Inhalt aus der Datei gefüllt werden sollen:

Tabellen Felder

Katalog Catalog_ID Catalog_Version Currency Date Time Supplier Language Generator

Gruppen Group_ID Parent_ID Group_Name Structure_Type Sort_Order

Artikel Article_ID Group_ID Description_Short Description_Long Feature_Gewicht Feature_ArtikelNr Feature_Varianten Order_Unit Price_Amount Price_Type Tax Arbitary_Data Mime_Type_1 Mime_Source_1 Mime_Purpose_2 Mime_Source_2 Mime_Purpose_2

Wäre sehr Dankbar, wenn mir als Laie das jemand Verständlich erklären könnte (am besten mit einem Code- Beispiel)

LastBoyScout
Mit Zitat antworten
  #2 (permalink)  
Alt 23-12-2007, 00:50
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Wo scheiterst du denn? Hast du überhaupt schon angefangen zu programmieren? Dann zeig mal her und erkläre, was nicht läuft.
Mit Zitat antworten
  #3 (permalink)  
Alt 25-12-2007, 13:08
LastBoyScout
 Newbie
Links : Onlinestatus : LastBoyScout ist offline
Registriert seit: Dec 2007
Beiträge: 8
LastBoyScout ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi onemorenerd,

Ich bin Einsteiger in Sachen PHP, hab mal einen VHS- Kurs besucht und mich seit her autodidaktisch vorgearbeitet.

Bin bei diesem Projekt bis dato auch noch in der "Vorbereitungsphase" und hab daher mal die benötigten Tabellen und Felder aufgelistet, aber ich finde eben keinen richtigen Einstiegs punkt bezüglich xml.

Ist auch das erste mal, das ich mit xml in Berührung komme und mir so ne Datei mal von innen ansehe.

Hab schon seit Tagen umher gegoogelt aber ich finde irgendwie nicht das passende, oder ich bin vermutlich zu Blöd und es muss mir mal jemand leicht Verständlich Übersetzen.

Wie fängt man so was am besten an? mit welchen Funktionen usw?
Kannst du es mir bitte mal anhand der beispiel xml Veranschaulichen!

Gruß und schöne Feiertage wünscht,
LastBoyScout
Mit Zitat antworten
  #4 (permalink)  
Alt 26-12-2007, 22:46
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

http://google.com/search?q=php+xml+tutorial
Mit Zitat antworten
  #5 (permalink)  
Alt 27-12-2007, 18:59
LastBoyScout
 Newbie
Links : Onlinestatus : LastBoyScout ist offline
Registriert seit: Dec 2007
Beiträge: 8
LastBoyScout ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Diese Suche habe ich natürlich als erstes bemüht, aber es wird (in für mich verständlicher Form) meist nur auf SimpleXML eingegangen, was aber wiederum PHP5 voraussetzt. dontknow
Auf meinem Server läuft aber PHP4, der Provider würde zwar Kostenfrei auf PHP5 wechseln, aber da hab ich Angst, das andere Scripte nicht mehr laufen.

Ein passendes Beispiel, mit denen man es immer noch am besten kapiert, hab ich leider nicht finden können.

Möchte ja nicht gleich XML Studieren müssen und experte werden um diese Funktionalität zu verstehen.

Wäre daher jedem sehr Dankbar, der mir die benötigten Funktionen an meinem Beispiel aufzeigen könnte.

LastBoyScout

P.S. gibt es eine einfache Möglichkeit, seine Scripte auf die Kompatibilität mit PHP5 hin zu Testen?
(Ich Arbeite übrigens mit PHPEdit)
Mit Zitat antworten
  #6 (permalink)  
Alt 30-12-2007, 17:51
LastBoyScout
 Newbie
Links : Onlinestatus : LastBoyScout ist offline
Registriert seit: Dec 2007
Beiträge: 8
LastBoyScout ist zur Zeit noch ein unbeschriebenes Blatt
Unhappy

Anhand der vielen Zugriffe in so kurzer Zeit, scheint das Thema doch auch für andere sehr Interessant, aber gleichzeitig auch schwieriger zu sein, als ursprünglich von mit angenommen!

Gibt es den keinen, der sich mit XML auskennt und uns Neulingen die vorgehensweise, anhand eines gut Kommentierten Scriptes für die beigefügte Beispiels xml näher bringen könnte?

Bin für jeden konstruktiven Beitrag Dankbar!
Mit Zitat antworten
  #7 (permalink)  
Alt 30-12-2007, 18:25
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Such dir halt eine andere XML-Pasing Klasse. Das Prinzip von XML muss man dir aber nicht erklären, oder? Falls doch: Öffne deine XML-Datei mal mit Firefox/IE, das sollte dann selbsterklärend sein.
Mit Zitat antworten
  #8 (permalink)  
Alt 25-11-2008, 16:56
knighthawk1976
 Newbie
Links : Onlinestatus : knighthawk1976 ist offline
Registriert seit: Nov 2008
Beiträge: 1
knighthawk1976 ist zur Zeit noch ein unbeschriebenes Blatt
Standard XML und Php

Tag Tag

beschäftige mich auch schon eine weile mit Xml und php sowie weiter Sprachen (VB, VBS, JS). Eigentlich ganz simple. Um dir den Einstieg zu erleichtern schau dir mal diese Seite an. Da steht eigentlich alles was du für den Zugriff auf xml mit Php wissen mußt.

http://www.php.net/manual/de/book.domxml.php

Des wichtigste ist das du ein DTD schema erstellst sonst funzt, des ganze nicht.
Bsp

<!DOCTYPE Cafeteria[
<!ELEMENT Ueberuns (tagesmenue, standartmenue, sweetes, cafe, sonstiges)>
<!ATTLIST Ueberuns
id ID #REQUIRED
>......

]>


<Cafeteria>
<Ueberuns id = "ueberuns">
<tagesmenue
id = "tagesmenue"
mon = "txt"
die = "txt"
mit = "txt"
don = "txt"
fre = "txt"
sam = "txt"
son = "txt">
</tagesmenue>
</Ueberuns>

</Cafeteria>

!!! die Wohlgeformtheit des Dokumentes ist ultrawichtig, sonst nimmt php4-5 keine Verbindung auf:!!!!

Die DTD darf nicht in einer externen Datei ausgelagert werden.

Und um mit get_element_by_Id("ueberuns") zu arbeiten muß die ID in der
DT explezit deklariert sein.

<!ATTLIST Ueberuns
id ID #REQUIRED
>......

Eigentlich kannst du mit fast jeder Sprache auf Xml zugreifen, des macht die Sache so interesant.

Tip: Verschlüssel deine Eingaben sonst kann sie jeder lesen.
Tip2: Die Dateiendung einfach auf *.php ändern, dann ist es noch schwerer die Datei zu lesen, wenn du ein Xml Dokument mit der Standartendung läßt, kann wie in den Beiträgen oben erleutert jeder deine Datenbank anschauen.

mfg
knighthawk
www.phoenix-global-web.de
Mit Zitat antworten
  #9 (permalink)  
Alt 26-11-2008, 09:55
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Warum unbedingt eine DTD? Damit er getElementByID nutzen kann? Schau dir mal Xpath an. Ansonsten kann es natürlich schon sinnvoll sein, das Xml erstmal zu validieren bevor es weitergeht.

Dom ist wohl auch in PHP4 implementiert, wenn auch nicht so schön wie in PHP5 (<- sind da viele andere Skripte die evtl. umgeschrieben werden müssten? Ich würd den Umstieg machen).

Für PHP4: http://de.php.net/manual/de/ref.domxml.php

Falls nach bestimmten Elementen gesucht werden muss -> Xpath - frag mich aber nicht, wie man damit unter PHP4 arbeitet.

Mit Xslt müsstest du dir dein Xml dann schön in ein SQL-Statement transformieren lassen können. Also die Arbeit, das Xml direkt in PHP Element für Element auszulesen und daraus ein Statement zu zimmern sollte auch nicht erforderlich sein.

Ansonsten:
Um in Xml einzusteigen, würd ich mir erstmal etwas einfachere Xml-Dokumenten vorknöpfen - für nen Einsteiger ist das gezeigte hier wohl doch eher komplex und wenn du dann damit nicht vorwärts kommst, kommt schnell der Frust. Nimm erstmal einfache Xml's mit wenig verschachtelten Elementen (am besten erstmal nur eine Ebene) und lerne damit das Arbeiten damit zu verstehen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:30 Uhr.