Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-09-2010, 12:44   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
Xml mit Php Erstellen - Neue Knote Am Anfang

habs folgender php script, der in xml neue knoten hinzufügt

PHP-Code:
<?php

    $var1 
"Vorname";  
    
$var2 "Name"
        
    
$myXML "my_xml.xml";         
    
$myXML_RootKnote "root";         
    
$myXML_SubKnote "subknote";             

    
$myXML_SubKnoteNodes = array("Vorname""Name"); 
            
    if(!
file_exists($myXML)) {
        
$dom = new DOMDocument("1.0","UTF-8");                
        
$dom->formatOutput true;                            
        
$dom->preserveWhiteSpace false;
        
$root $dom->createElement($myXML_RootKnote);                
        
$root $dom->appendChild($root);                    
    }
    
    if(!isset(
$dom)) {
        
$dom = new DOMDocument();
        
$dom->formatOutput true;                            
        
$dom->preserveWhiteSpace false;
        
$dom->load($myXML);
        
$root $dom->documentElement 
    }
    
    
$node $dom->createElement($myXML_SubKnote); 
    
$node $root->appendChild($node); 
           
    
$subNode $dom->createElement($myXML_SubKnoteNodes[0]); 
    
$node->appendChild($subNode);
    
$thumbsChild $dom->createTextNode($var1); 
    
$subNode->appendChild($thumbsChild);     

    
$subNode $dom->createElement($myXML_SubKnoteNodes[1]);
    
$node->appendChild($subNode); 
    
$imgChild $dom->createTextNode($var1); 
    
$subNode->appendChild($imgChild); 

    if(
$dom->save($myXML)){
        echo 
"&Erstellt = OK";
    }else{
        echo 
"&Erstellt = ERROR";
    }

?>
es klappt auch gut

was ich nicht verstehe, wie ich der letzte erstellte knote am anfang hinzufügen kann, statt am ende?
beto2010 ist offline   Mit Zitat antworten
Alt 28-09-2010, 13:05   #2 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
PHP: DomNode->insert_before - Manual
PHP-Code:
prependChild(parentnode) { 
     
parent.insertBefore(nodeparent.firstChild); 

__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 28-09-2010, 13:12   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
Zitat:
Zitat von Nightflyer Beitrag anzeigen
PHP: DomNode->insert_before - Manual
PHP-Code:
prependChild(parentnode) { 
     
parent.insertBefore(nodeparent.firstChild); 


was ist hier mit parent gemeint? root knote?
beto2010 ist offline   Mit Zitat antworten
Alt 28-09-2010, 13:22   #4 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
habs so versucht, geht aber nicht

PHP-Code:
<?php
::
::
    
$elements $dom->getElementsByTagName("subknote");
    
$element $elements[0];
    
$dom $dom->insert_before($element$element);
::
::

?>
beto2010 ist offline   Mit Zitat antworten
Alt 28-09-2010, 13:55   #5 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Mit parent ist derjenige Knoten gemeint inwelchen du das Element an erster stelle ladn willst. Bei dir wohl $subNode
__________________
(\__/)
(='.'=)
(")_(")

Geändert von Nightflyer (28-09-2010 um 13:56 Uhr)
Nightflyer ist offline   Mit Zitat antworten
Alt 28-09-2010, 15:41   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
ich bekomme immer noch nicht hin, der neu erstellte noe am an fang zu füren

wenn ich der insertBefore richtig verstanden habe, sollte doch so gehen oder?

PHP-Code:
$root $dom->insertBefore($node$myXML_RootKnote->item(0)); 
beto2010 ist offline   Mit Zitat antworten
Alt 28-09-2010, 23:29   #7 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
jemand ein idee?
beto2010 ist offline   Mit Zitat antworten
Alt 29-09-2010, 00:20   #8 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
ich bekomme immer noch nicht hin, bitte um ansätze, wie ich es hinbekommen kann.


PHP-Code:
::
::
    
// ich finde folgender masse, der node, vordem ich der neue node hinzufügen will
    
$nodeBefore $dom->getElementsByTagName('subknote')->item(0)->nodeValue;
    
// und dann der neue dom element hinzufügen
    
$dom->insertBefore($dom$nodeBefore); 
::
:: 
es klappt aber nicht
beto2010 ist offline   Mit Zitat antworten
Alt 29-09-2010, 06:14   #9 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
lass mal das ->nodeValue() weg, wozu soll das gut sein? Und dann halt prüfen ob du da wirklich ein Objekt hast.
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 29-09-2010, 11:32   #10 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
Zitat:
Zitat von Nightflyer Beitrag anzeigen
lass mal das ->nodeValue() weg, wozu soll das gut sein? Und dann halt prüfen ob du da wirklich ein Objekt hast.

so klappt es nun

PHP-Code:
$root->childNodes->item(0)->parentNode->insertBefore($node,$root->childNodes->item(0)); 
beto2010 ist offline   Mit Zitat antworten
Alt 29-09-2010, 11:45   #11 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
lass mal

childNodes->item(0)->parentNode->

weg und schau ob es immer noch geht
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 29-09-2010, 12:30   #12 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
Zitat:
Zitat von Nightflyer Beitrag anzeigen
lass mal

childNodes->item(0)->parentNode->

weg und schau ob es immer noch geht

gehn tut das, aber es wird der child abschliessender tag von vorherigen nodes entfern

weil ich vorher ein überprüfung mach, um zu schauen ab breit ein childNode exist, fals nicht damit der der erstelte node hinzugefügt wird.

PHP-Code:
    if(!isset($root->childNodes->item(0)->parentNode)){
// erstelle node
}else{
// erstelle node
$root->insertBefore($node,$root->childNodes->item(0));

beto2010 ist offline   Mit Zitat antworten
Alt 01-10-2010, 20:54   #13 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
wie kann ich, ein gute überprüfung machen, der erst schaut, ob breit xml inhalte hat, falls der xml inhalt hat, soll der neu erstellte knote am anfang kommen

falls aber kein inhalt hat, der erstellte knote wird einfach in xml geschrieben


so klappt es, aber ich finde etwas überflüssig, zweimal gleiche sachen zu benutzen

PHP-Code:
if(!isset($root->childNodes->item(0)->parentNode)){
    
$node $dom->createElement($myXML_SubKnote); 
    
$node $root->appendChild($node); 
           
    
$subNode $dom->createElement($myXML_SubKnoteNodes[0]); 
    
$node->appendChild($subNode);
    
$thumbsChild $dom->createTextNode($var1); 
    
$subNode->appendChild($thumbsChild);     

    
$subNode $dom->createElement($myXML_SubKnoteNodes[1]);
    
$node->appendChild($subNode); 
    
$imgChild $dom->createTextNode($var1); 
    
$subNode->appendChild($imgChild); 
}else{
    
$node $dom->createElement($myXML_SubKnote); 
    
$node $root->appendChild($node); 
           
    
$subNode $dom->createElement($myXML_SubKnoteNodes[0]); 
    
$node->appendChild($subNode);
    
$thumbsChild $dom->createTextNode($var1); 
    
$subNode->appendChild($thumbsChild);     

    
$subNode $dom->createElement($myXML_SubKnoteNodes[1]);
    
$node->appendChild($subNode); 
    
$imgChild $dom->createTextNode($var1); 
    
$subNode->appendChild($imgChild); 

    
$root $dom->insertBefore($node$myXML_RootKnote->item(0));

beto2010 ist offline   Mit Zitat antworten
Alt 02-10-2010, 00:52   #14 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
probier mal
PHP-Code:
function createSubnode( &$dom, &$myXML_SubKnote, &$myXML_SubKnoteNodes, &$var1  ){
    
    
$node $dom->createElement($myXML_SubKnote); 
    
$node $root->appendChild($node); 
           
    
$subNode $dom->createElement($myXML_SubKnoteNodes[0]); 
    
$node->appendChild($subNode);
    
$thumbsChild $dom->createTextNode($var1); 
    
$subNode->appendChild($thumbsChild);     

    
$subNode $dom->createElement($myXML_SubKnoteNodes[1]);
    
$node->appendChild($subNode); 
    
$imgChild $dom->createTextNode($var1); 
    
$subNode->appendChild($imgChild);
}
    

if(!isset(
$root->childNodes->item(0)->parentNode)){
    
createSubnode$dom$myXML_SubKnote$myXML_SubKnoteNodes$var1 );
}else{
    
createSubnode$dom$myXML_SubKnote$myXML_SubKnoteNodes$var1 );
    
$root $dom->insertBefore($node$myXML_RootKnote->item(0));

__________________
(\__/)
(='.'=)
(")_(")

Geändert von Nightflyer (02-10-2010 um 00:54 Uhr)
Nightflyer ist offline   Mit Zitat antworten
Alt 02-10-2010, 15:01   #15 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 178
Zitat:
Zitat von Nightflyer Beitrag anzeigen
probier mal
der findet der objekt nicht
PHP-Code:
Fatal errorCall to a member function appendChild() on a non-object in C:xampplitehtdocstest.php on line 31 
PHP-Code:
   <?php

    $var1 
"Vorname";  
    
$var2 "Name"
        
    
$myXML "my_xml.xml";         
    
$myXML_RootKnote "root";         
    
$myXML_SubKnote "subknote";             

    
$myXML_SubKnoteNodes = array("Vorname""Name"); 
            
    if(!
file_exists($myXML)) {
        
$dom = new DOMDocument("1.0","UTF-8");                
        
$dom->formatOutput true;                            
        
$dom->preserveWhiteSpace false;
        
$root $dom->createElement($myXML_RootKnote);                
        
$root $dom->appendChild($root);                    
    }
    
    if(!isset(
$dom)) {
        
$dom = new DOMDocument();
        
$dom->formatOutput true;                            
        
$dom->preserveWhiteSpace false;
        
$dom->load($myXML);
        
$root $dom->documentElement 
    }
    
    function 
createSubnode( &$dom, &$myXML_SubKnote, &$myXML_SubKnoteNodes, &$var1  ){
        
        
$node $dom->createElement($myXML_SubKnote); 
        
$node $root->appendChild($node); 
               
        
$subNode $dom->createElement($myXML_SubKnoteNodes[0]); 
        
$node->appendChild($subNode);
        
$thumbsChild $dom->createTextNode($var1); 
        
$subNode->appendChild($thumbsChild);     
    
        
$subNode $dom->createElement($myXML_SubKnoteNodes[1]);
        
$node->appendChild($subNode); 
        
$imgChild $dom->createTextNode($var1); 
        
$subNode->appendChild($imgChild);
    }
        
    
    if(!isset(
$root->childNodes->item(0)->parentNode)){
        
createSubnode$dom$myXML_SubKnote$myXML_SubKnoteNodes$var1 );
    }else{
        
createSubnode$dom$myXML_SubKnote$myXML_SubKnoteNodes$var1 );
        
$root $dom->insertBefore($node$myXML_RootKnote->item(0));
    }

    if(
$dom->save($myXML)){
        echo 
"&Erstellt = OK";
    }else{
        echo 
"&Erstellt = ERROR";
    }

?>
beto2010 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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 sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash CS4] neue Anwendungsdatei erstellen Theo23 Flash Einsteiger 4 08-01-2010 10:42
[Flash CS3] Neue Flashseite erstellen :-) shrekisback Flash Einsteiger 1 02-12-2009 14:04
Neue Beiträge erstellen KMS Fragen, Konstruktive Kritik, Lob 4 28-04-2006 12:31
Bildergalerie erstellen von Anfang an! Castor Flash MX 2004 14 27-05-2005 12:50
neue instanz mit php erstellen Doknik Flash und Datenbanken 14 19-03-2002 21:25


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele