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 24-04-2007, 17:51
class.matze
 Newbie
Links : Onlinestatus : class.matze ist offline
Registriert seit: Dec 2005
Beiträge: 15
class.matze ist zur Zeit noch ein unbeschriebenes Blatt
Standard XML Gästebuch

hallo erstmal. ich brauch dringend eure hilfe. ich tüftel gerade an einem php gästebuch auf xml basis rum und komme einfach nicht weiter. meine xml struktur der einträge sieht so aus:

Code:
<?xml version="1.0"?>
<eintraege>
    <eintrag nr="3">
        <name>Max Mustermann</name>
        <nachricht>BlaBlaBla</nachricht>
    </eintrag>
    <eintrag nr="2">
        <name>Max Mustermann</name>
        <nachricht>BlaBlaBla</nachricht>
    </eintrag>
    <eintrag nr="1">
        <name>Max Mustermann</name>
        <nachricht>BlaBlaBla</nachricht>
    </eintrag>
</eintraege>
ich würde gerne mit php automatisch eine xml datei erstellen lassen, die

1. den neuen eintrag ganz oben (siehe xml struktur) einschreibt und
2. das nr attribut vom tag <eintrag> anhand des vorhergehenden eintrags ermittelt. also nr neu = nr attributalt + 1 ^^
die werte für name und nachricht erhalt ich über die variablen $name und $nachricht aus einem formular.

ich komme bei dem problem echt nicht weiter. hab mich schon durch google, wikipedia und wie sie alle heißen durchgeschlagen und durch ein php 5 buch aber ich versteh das php dom einfach nicht. besonders, wie man den aktuellsten eintrag ganz nach oben einschreiben lassen kann. bitte keine 'please read the faq" antworten. ich komm hier nämlich echt nicht weiter...
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 24-04-2007, 17:54
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: XML Gästebuch

Zuerst mal wäre interessant zu wissen, mit welcher DOM-Implemenation du arbeitest.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 24-04-2007, 17:57
class.matze
 Newbie
Links : Onlinestatus : class.matze ist offline
Registriert seit: Dec 2005
Beiträge: 15
class.matze ist zur Zeit noch ein unbeschriebenes Blatt
Standard

implementation ? wie bekomme ich die raus ? php ? phpinfo() ?

Code:
DOM/XML 	enabled
DOM/XML API Version 	20031129
libxml Version 	2.6.16
HTML Support 	enabled
XPath Support 	enabled
XPointer Support 	enabled
Schema Support 	enabled
RelaxNG Support 	enabled

Geändert von class.matze (24-04-2007 um 18:01 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 24-04-2007, 18:09
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

gehe mal durch die funktionsliste unter http://de2.php.net/manual/en/ref.dom.php durch, schau dir aufmerksam die user notes an, dort gibt es sehr viele beispiele.

google nach "php5 dom", du findest immens viele anleitungen mit beispielen und erklärungen.

dann versuchst du es selbst, und wenn es nicht klappt, stellst du hier konkrete fragen. so ein "wie geht das" ist nicht zu beantworten.
Mit Zitat antworten
  #5 (permalink)  
Alt 24-04-2007, 18:14
class.matze
 Newbie
Links : Onlinestatus : class.matze ist offline
Registriert seit: Dec 2005
Beiträge: 15
class.matze ist zur Zeit noch ein unbeschriebenes Blatt
Standard

auf der seite hab ich schon geschaut.

das eintragen versteh ich ja teilweise mit dom. aber wie setz ich den neuen eintrag nach ganz oben in die xml datei. bei mir hängt dom immer den neuen eintrag unten an.

ich will es also so machen, wie im beispiel. das der neue eintrag (nr 3) immer über dem letzten eintrag (nr 2) steht. und wie komm ich mittels dom an das nummern attribut des letzten eintrags. das sind meine 2 probleme.

das hat sicher was mit insertBefore() zu tun. aber ich versteh da gar nichts.

Geändert von class.matze (24-04-2007 um 18:17 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 24-04-2007, 18:20
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von class.matze
das hat sicher was mit insertBefore() zu tun. aber ich versteh da gar nichts.
Und mit so einer "Problembeschreibung" können wir "gar nichts" anfangen.

Entweder gibst du dir etwas Mühe, konkret zu beschreiben, wo dein Problem liegt - oder es bleibt meinerseits bei einem RTFM.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 24-04-2007, 18:22
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mach mal halblang und lern erst mal aus der datei lesen. wenn das klappt, kannst du weiter machen. z.b. erst mal irgendwie irgend einen knoten anhängen und den baum ausgeben - dann siehst du, was das bewirkt. aber nicht alles auf ein mal.
Mit Zitat antworten
  #8 (permalink)  
Alt 24-04-2007, 19:22
class.matze
 Newbie
Links : Onlinestatus : class.matze ist offline
Registriert seit: Dec 2005
Beiträge: 15
class.matze ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Okay. Ich hab jetzt soweit mal den Code geschrieben:

PHP-Code:
$nummer 1;
$benutzername date("d.m.Y - H:i",time());

//DOM Eintrag
$dom = new DOMDocument();
$dom->load('gaestebuch.xml');

$eintrag $dom->createElement('eintrag');
$eintrag->setAttribute('nr'$nummer);

$name $dom->createElement('name');
$name_wert $dom->createTextNode($benutzername);
$name->appendChild($name_wert);

$eintrag->appendChild($name);
$dom->documentElement->appendChild($eintrag);
$dom->save('gaestebuch.xml'); 
Dieses Script hängt an eine XML-Datei also immer:

Code:
<eintrag nr="1">
<name>24.04.2007 - 18:17</name>
</eintrag>
Wie kann ich es nun machen, dass Dom den neuen Eintrag nicht immer unten anhängt sondern immer am anfang (oben in der xml-datei) reinschreibt. Also vor dem ersten <eintrag> - Element.

Geändert von class.matze (24-04-2007 um 19:27 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 24-04-2007, 19:27
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

warum nicht erst auslesen lernen?

sorry. edit.

was ergibt die eigenschaft firstChild von dem knoten "eintraege"? "ergibt" im sinne von var_dump.

Geändert von penizillin (24-04-2007 um 19:30 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 24-04-2007, 19:29
class.matze
 Newbie
Links : Onlinestatus : class.matze ist offline
Registriert seit: Dec 2005
Beiträge: 15
class.matze ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das auslesen einer xml datei kann ich. das ist kein problem mehr. das problem ist nur die reihenfolge der einträge.
Mit Zitat antworten
  #11 (permalink)  
Alt 24-04-2007, 19:38
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

was ergibt die eigenschaft firstChild von dem knoten "eintraege"? "ergibt" im sinne von var_dump.
Mit Zitat antworten
  #12 (permalink)  
Alt 24-04-2007, 19:40
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von class.matze
Wie kann ich es nun machen, dass Dom den neuen Eintrag nicht immer unten anhängt sondern immer am anfang (oben in der xml-datei) reinschreibt. Also vor dem ersten <eintrag> - Element.
Na, wie du schon vermutet hast - insertBefore statt appendChild.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #13 (permalink)  
Alt 24-04-2007, 19:49
class.matze
 Newbie
Links : Onlinestatus : class.matze ist offline
Registriert seit: Dec 2005
Beiträge: 15
class.matze ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wo und wie muss ich das insert_before anwenden ? kannstes vielleicht kurz an dem beispiel hier zeigen:

PHP-Code:
$nummer 1;
$benutzername date("d.m.Y - H:i",time());

//DOM Eintrag
$dom = new DOMDocument();
$dom->load('gaestebuch.xml');

$eintrag $dom->createElement('eintrag');
$eintrag->setAttribute('nr'$nummer);

$name $dom->createElement('name');
$name_wert $dom->createTextNode($benutzername);
$name->appendChild($name_wert);

$eintrag->appendChild($name);
$dom->documentElement->appendChild($eintrag);
$dom->save('gaestebuch.xml'); 
Mit Zitat antworten
  #14 (permalink)  
Alt 24-04-2007, 19:52
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

..keine antwort?
Mit Zitat antworten
  #15 (permalink)  
Alt 24-04-2007, 21:58
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von class.matze
wo und wie muss ich das insert_before anwenden ? kannstes vielleicht kurz an dem beispiel hier zeigen
Nein - jetzt wird's wirklich langsam Zeit für
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
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

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

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


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:43 Uhr.