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 Thema bewerten
  #1 (permalink)  
Alt 10-07-2003, 20:50
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Arrow XML als Content-Datei! Nicht PARSEN!!!

hallo,

also ich bin am verzweifeln! ich hab inzwischen den ganzen PHP-XML thread hier durchgelesen, aber nichts gescheites gefunden! auch google hat mir nicht viel weiter geholfen.

die meisten leute die hier gepostet haben möchten eine XML datei mit PHP auslesen und dann aber auch gleich in XML parsen, so wie ich das verstanden habe.

ich möchte aber eine XML datei einfach als datenspeicher verwenden (wie eine kleine datenbank), diese mit PHP auslesen und dann GANZ NORMAL in HTML ausgeben!

XML beispiel:

PHP-Code:
<articles>
  <
article>
    <
title>PHP und XML</title>
    <
author>Hans Mustermann</author>
    <
description>blablabla</description>
  </
article>
  <
article>
    <
title>Java und XML</title>
    <
author>Peter Zitrone</author>
    <
description>blablabla</description>
  </
article>
</
articles
diese datei muss man doch einfach auslesen können wie eine datenbank auch, oder?
so das ich dann in einer schleife jeden "block" durchgehe und es mittles PHP (zB über ein templatesystem) ausgebe. ganz normales parsen...! PHP DOM nennt sich das wohl, wie ich inzwischen rausgefunden habe...


bei google hab ich zwar hilfen gefunden, wie das ungefähr geht, aber die benutzen alle XSLT zur formatierung! genau DAS ist der punkt, den ich nicht brauche. (zB hier: http://www.infos24.de/xmle/handbuch/6_xml_sablotron.htm )


und dieser link kommt auch ganz nah an meine wünsche ran, bloß das ich GENAU so ein beispiel für PHP bräuchte (statt ASP: http://www.aspheute.com/artikel/20000417.htm )


die "referenz" bei php.net hat mir auch nicht weiter geholfen! (wo sind da die php funktionen, die ich brauche?!)


vielleicht kennt einer von euch ein kleinen php-code-schnipsel? tutorial? weiterführende information?

danke!




PS: ist die verbindung zwischen XML und PHP noch in einem so extremen anfangsstadium, das es da so wenig infos drüber gibt?
andere programmiersprachen wie Java oder ActionScript bieten diese verbindung doch schon ziemlich ausgereift und umfangreich an?!
__________________
GLORIA PERPETUA
Mit Zitat antworten
  #2 (permalink)  
Alt 11-07-2003, 12:57
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.734
Kropff befindet sich auf einem aufstrebenden Ast
Standard

also ich nutze unter linux EXPAT (open source xml-parser), den kannst du auch per php ansteuern, und ist auf den meisten webservern verfügbar.

expat.sourceforge.net/

damit kannst du sehr einfach die tags und den inhalt auslesen und dann entsprechend mit html ausgeben

gruss
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite

Geändert von Kropff (11-07-2003 um 13:14 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 11-07-2003, 13:41
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

aja, danke!
von dem ding hab ich bei google auch schon irgendwo was gelesen.

gibt es einen "standard" was diese xml-parser betrifft? weil wenn ich damit anfange, dann sollte das auch "genereller standard" sein!


noch eine kleine frage: ist ein solcher xml-parser standardmäßig in dem php-paket dabei?
also wenn ich die scripte zu meinem provider hochlade, funktionieren die dort?
weil bei einem provider kann ja nicht einfach eine extension nachinstallieren (wenn man nicht gerade einen kompletten v-server hat o.ä.)

thx soweit
__________________
GLORIA PERPETUA
Mit Zitat antworten
  #4 (permalink)  
Alt 11-07-2003, 14:30
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.734
Kropff befindet sich auf einem aufstrebenden Ast
Standard

kannst du mit phpinfo() abfragen, wenn expat auf der kiste drauf ist, sieht das so aus wie auf dem angehängten bild

gruss
peter
Angehängte Grafiken
Dateityp: gif expat.gif (1,8 KB, 781x aufgerufen)
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 11-07-2003, 14:45
Blaster
 PHP Junior
Links : Onlinestatus : Blaster ist offline
Registriert seit: Nov 2001
Ort: Köln
Beiträge: 968
Blaster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sablotron erhälst Du hier:
http://www.gingerall.com/charlie/ga/xml/p_sab.xml

Ein Tut:
http://www.zend.com/zend/tut/tut-hudson.php
http://www.gingerall.com/charlie/ga/xml/x_sabphp.xml
cu

Blaster
__________________
Yuppi, endlich Elite ...

Geändert von Blaster (11-07-2003 um 14:52 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 11-07-2003, 14:48
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja, sorry, das hab ich auch gerade entdeckt!
es ist sogar der expat als standard!!! *freu*


hab ein tutorial er-googled, für alle die eins suchen (wird ja ständig hier gepostet!)
http://www.zend.com/zend/art/parsing.php


und noch eine frage: folgenden code habe ich gefunden... er verwundert mich aber sehr, denn:

PHP-Code:
function GetElementByName ($xml$start$end) {
  
$startpos strpos($xml$start);
  if (
$startpos === false) {
    return 
false;
  }
  
$endpos strpos($xml$end);
  
$endpos $endpos+strlen($end); 
  
$endpos $endpos-$startpos;
  
$endpos $endpos strlen($end);
  
$tag substr ($xml$startpos$endpos);
  
$tag substr ($tagstrlen($start));
  return 
$tag;

diese funktion stammt aus einem script, welches den inhalt einer XML datei ausliest und zerlegt.
ABER: warum schreibt der programmierer hierfür extra eine funktion???
ist dieses, was die funktion tut, nicht GENAU DAS(!!!), was eigentlich der parser tun sollte??? ich mein, mit substr() zu arbeiten mit 1000 zählern usw... das kann doch nicht sinn und zweck der sache sein?! das ist doch langsam und rechenaufwendig! *wunder*

hat einer von euch eine erklärung?
was hat der parser mit dieser funktion zu tun?
__________________
GLORIA PERPETUA

Geändert von deklarmart (11-07-2003 um 14:53 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 11-07-2003, 15:07
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: XML als Content-Datei! Nicht PARSEN!!!

Zitat:
Original geschrieben von Blaster
[...]
Ein Tut:
http://www.zend.com/zend/tut/tut-hudson.php
[...]
Zitat:
Original geschrieben von deklarmart
bei google hab ich zwar hilfen gefunden, wie das ungefähr geht, aber die benutzen alle XSLT zur formatierung! genau DAS ist der punkt, den ich nicht brauche. (zB hier: http://www.infos24.de/xmle/handbuch/6_xml_sablotron.htm )

^^

aber trotzdem danke!
__________________
GLORIA PERPETUA
Mit Zitat antworten
  #8 (permalink)  
Alt 11-07-2003, 15:13
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.734
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
ABER: warum schreibt der programmierer hierfür extra eine funktion???
eigentlich sind es DREI funktionen (so kenne ich das zumindest), die erste für den start-tag, die zweite für den inhalt, und die dritte für das schließende tag.

PHP-Code:
function startElement($parser,$name,$attrs)
{
     echo 
$name;
}

function 
getData$parser$data)
{
   echo 
$data;
}

function 
endElement($parser$name)
{
      echo 
$name;

und der aufruf erfolgt so:
PHP-Code:
$xml_parser xml_parser_create;
// Parst start -und end-tag
xml_set_element_handler ($xml_parser"startElement""endElement");
// parst den inhalt
xml_set_charakter_data_handler($xml_parser"getData");
//name des docs zum parsen
xml_parse ($xml_parser,"dokument.xml");
xml_parser_free ($xml_parser); 
ist nur ein kleines beispiel, und wohl auch voller fehler (hab ich aus dem kopf heraus gehackt), die erläuterungen sind auch nicht so ganz korrekt, aber es soll ja nur zeigen, wie das prinzipiell funzt.
gruss
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #9 (permalink)  
Alt 11-07-2003, 15:46
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ahhhhh! super, jetzt hats bei mir immerhin zu 50% *klick* gemacht.

bleibt noch die frage offen: wenn du das so gut ausm kopf tippen kannst, wo hast du das dann gelernt??
du must es ja irgendwo gelesen haben. vielleicht eine gute seite die du noch kennst? :->

aber vielleicht bringt mich das so auch schonmal weiter.
(leider sind diese ganzen xml funktionen bei php.net nicht so schön erklärt, wie alle anderen php-funktionen (mail() usw...)


__________________
GLORIA PERPETUA
Mit Zitat antworten
  #10 (permalink)  
Alt 11-07-2003, 16:03
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ALLES SUPER!!!

- dein code funktioniert 100pro
- ich hab die funktionsweise endlich gepeilt
- das auslesen von xml dateien funktioniert prima





VIELEN DANK @ ALLE
__________________
GLORIA PERPETUA
Mit Zitat antworten
  #11 (permalink)  
Alt 11-07-2003, 18:35
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

könnt ihr mir nochmal ein kleinen tip geben?
eigentlich hatte ich noch nie probleme mit dem auslesen von mehrdimensionalen arrays, aber hier scheint das etwas anders zu sein!

liegt das evt. daran, das ein objekt einer eigenen klasse im array liegt?

die xml-datei:
PHP-Code:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<briefbogen>
<brief>
  <name>All User by BlaBla AG</name>
  <betreff format="big">XML Vortrag</betreff>
  <absatz>XML ist echt toll!!!</absatz>
  <unterschrift>Mr. AllUser</unterschrift>
</brief>
<brief>
  <name>Semmelberg GmbH</name>
  <betreff format="big">Ihr Angebot</betreff>
  <absatz>Wolln wa nich</absatz>
  <unterschrift>Mustermann</unterschrift>
</brief>
</briefbogen>
die php-klasse:
PHP-Code:
class xmlData {
    var 
$name;
    var 
$betreff;
    var 
$absatz;
    var 
$unterschrift;

    function 
xmlData ($aa) {
        foreach (
$aa as $k=>$v)
            
$this->$k $aa[$k];
    }

die ausgabe des arrays mit print_r() :

PHP-Code:
Array
(
    [
0] => xmldata Object
        
(
            [
name] => All User by BlaBla AG
            
[betreff] => XML Vortrag
            
[absatz] => XML ist echt toll!!!
            [
unterschrift] => MrAllUser
        
)

    [
1] => xmldata Object
        
(
            [
name] => Semmelberg GmbH
            
[betreff] => Ihr Angebot
            
[absatz] => Wolln wa nich
            
[unterschrift] => Mustermann
        
)

das array was am schluss entsteht mit den kompletten baumstruktur heißt "$db"!
und so habe ich es schon versucht auszugeben:
PHP-Code:
echo $db[0][0];
echo 
$db[0][name];
echo 
$db[0][$xmlData[0]];
echo 
$db[0][$xmlData['name']];
echo 
$db[0][$xmlData->name];
...
usw 
aber es geht nicht!
__________________
GLORIA PERPETUA
Mit Zitat antworten
  #12 (permalink)  
Alt 13-07-2003, 18:51
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

*autsch*


es geht natürlich ganz leicht, wenn man sich eine methode get_xmlData() für die klasse schreibt! ^^


sorry, das nächste mal überlege ich vor dem posten!
__________________
GLORIA PERPETUA
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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

Adsman Pro - Werbe-Manager V.1.1.0

Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebigem Format, Textanzeigen und Page-Peels mit umfangreichen Text und Flash-Effekte.

30.07.2019 rhs | Kategorie: PHP/ Bannerverwaltung
HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

30.07.2019 Berni | Kategorie: MYSQL/ Management
Top-Side.de Php Guest Book

Gästebuch mit Smilies, Ip Sperre und Spammschutz. Anzeige von Datum, Name, E-Mail, Homepage und Icq. Html ist deaktiviert.

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

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:36 Uhr.