power-box.de
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 15.04.2006, 12:38   #1
TP-Senior
 
Registriert seit: Jul 2003
Ort: B´tal
counter18 macht alles soweit korrekt

DOM xml beabeiten


Hi,
dieses Thema beschäftigt mich ein wenig. Bin an einen Punkt gelangt, wo ich an meine Grenzen stoße und mir einige Rätsel aufkommen. Ich habe ein DOM Script bei dem ich eine xml Datei bearbeiten kann was auch funktioniert, zumindest teilweise. Das Script ersetzt einfach im Tag <description> den beinhalteten Text. Mein Problem ist aber, ich kann nicht mehr als 45 Zeichen eingeben. Wenn ich 46 Zeichen eingebe, lässt er einfach den Tag leer. Warum?

Hier das php Script:
PHP-Code:
<html> 
    <head> 
        <title>News_Text_bearbeiten</title> 
    </head> 
    <body> 


<?php

$edit 
"description"
$text $_POST["id_text"];
$edit_content "$text";
$id_bearbeiten $_POST["id_bearbeiten"];
echo 
$id_bearbeiten;
$doc DOMDocument::load("inhalt.xml"); 

switch(
$edit) { 
    case 
"description"
        
$newtag $doc->createElement("description"); 
        
$newtag_content $doc->createTextNode($edit_content); 
        
$newtag->appendChild($newtag_content); 
        break; 
    default: 
        break; 


$xp = new domxpath($doc); 
$titles $xp->query('//item[@link_id="'.$id_bearbeiten.'"]'); 
foreach (
$titles as $node) { 
    foreach(
$node->childNodes as $cnode) { 
        if(
$cnode->nodeType == 1) { 
            if(
$cnode->nodeName == $edit) { 
                
$cnode->parentNode->replaceChild($newtag$cnode); 
            } 
        } 
    } 

echo 
$doc->saveXML(); 
$doc->save('inhalt.xml');
 
echo
'
<form enctype="multipart/form-data" action="'
.$_SERVER['PHP_SELF'].'" method="POST">
    <select name="id_bearbeiten">'
;
    
$filename 'inhalt.xml'
     
    if(
file_exists($filename)) { 
        
$xml simplexml_load_file($filename); 
        if(
$xml) { 
            foreach(
$xml->channel->item as $item) { 
            echo
'
                <option value="'
.$item->link.'">'.$item->link.'</option>'
                                                } 
                }
                                }
echo
'
</select><br>
    <textarea name="id_text" cols="40" rows="20"></textarea><br>
    <input type="submit" name="schritte" value="Neu_anlegen">

</form>
    </body> 
</html>'


?>
Dazugehörige xml:

Code:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Projekt News</title>
<link>http://www.dfdforg/</link>
<description>Projekt</description>
<language>de</language><item link_id="1144915426">
         			<title>Jetzt</title> 
         			<link>1144915426</link> 
         			<description></description> 
         			<category>privat</category> 
         			<pubDate>13. April 2006</pubDate> 
			  		</item><item link_id="1144914537"> 
         			<title>Test2005</title> 
         			<link>1144914537</link> 
         			<description/> 
         			<category>oeffentlich</category> 
         			<pubDate>13. April 2006</pubDate> 
			  		</item>

</channel>
</rss>
counter18 ist offline   Mit Zitat antworten


Alt 17.04.2006, 13:25   #2
TP-Veteran
 
Benutzerbild von Daniel N.
 
Registriert seit: Sep 2002
Ort: Schweiz
Daniel N. ist auf einem guten Weg
hmm, liegt das nicht an der methode "createTextNode"? oder kann man mit "CreateNode" keine CDATA mitgeben? ansonsten probiers mal damit
__________________

Passt auf, ich bin überheblich

http://orangetree.ch-gnu.ath.cx
Daniel N. ist offline   Mit Zitat antworten
Alt 18.04.2006, 11:16   #3
TP-Senior
 
Registriert seit: Jul 2003
Ort: B´tal
counter18 macht alles soweit korrekt
...du meinst also ich soll die Methode
PHP-Code:
switch($edit) {  
    case 
"description":  
        
$newtag $doc->createElement("description");  
        
$newtag_content $doc->createTextNode($edit_content);  
        
$newtag->appendChild($newtag_content);  
        break;  
    default:  
        break;  

PHP-Code:
switch($edit) {  
    case 
"description":  
        
$newtag $doc->createElement("description");  
        
$newtag_content $doc->createNode($edit_content);  
        
$newtag->appendChild($newtag_content);  
        break;  
    default:  
        break;  

ersetzen?
Bin gerade nicht bei meinen Daten, kann es deshalb noch nicht testen, aber nur dem Verständnis halber. Verstehe ich dich richtig?

Hat so funktioniert, vielen Dank!!!

Geändert von counter18 (18.04.2006 um 11:38 Uhr).
counter18 ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
DOM xml beabeiten DOM xml beabeiten
« Problem mit dem verbinden zur DB | [Newssystemkurs auf TP] Fragen und Anregungen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:29 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67