| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| // Knäckebrot Registriert seit: Mar 2002 Ort: München
Beiträge: 283
| xml auslesen mit cdata - klappt nicht
hi leutz, ich hab mich schon doofgesucht im forum, aber nix hilft mir wirklich weiter... ich versuche ein xml auszulesen, wo in einem knoten ein cdata drinsteckt, um dort html-formatierten inhalt einzubinden... es geht da bei um "details" bzw. das "details_array" Code: function ladeXML ()
{
info_xml = new XML ();
info_xml.ignoreWhite = true;
info_xml.load (_root.xmlvar);
info_xml.onLoad = function ()
{
head_array = new Array ();
artikel_array = new Array ();
details_array = new Array ();
thumbs_array = new Array ();
images_array = new Array ();
farbe_array = new Array ();
for (var y = 0; y < info_xml.childNodes[0].childNodes[0].childNodes.length; y++)
{
head_array[y] = info_xml.childNodes[0].childNodes[y].childNodes[0].childNodes[0].nodeValue;
artikel_array[y] = info_xml.firstChild.childNodes[y].childNodes[1].childNodes[0].nodeValue;
details_array[y] = info_xml.firstChild.childNodes[y].childNodes[5].childNodes[0].firstChild.nodeValue;
//details_array[y] = info_xml.firstChild.childNodes[y].childNodes[5].childNodes[0].nodeValue;
thumbs_array[y] = info_xml.firstChild.childNodes[y].childNodes[3].childNodes[0].nodeValue;
images_array[y] = info_xml.firstChild.childNodes[y].childNodes[4].childNodes[0].nodeValue;
farbe_array[y] = info_xml.firstChild.childNodes[y].childNodes[2].childNodes[0].nodeValue;
}
geladen ();
this.details.checkTextLength ();
};
}
//////////////////////////////////////////////////////////////////////////////////
this.LadeObj = new LoadVars ();
this.LadeObj.load (_root.xmlvar);
this.LadeObj.onLoad = ladeXML; Code: <?xml version="1.0" encoding="UTF-8"?> <root> <produkt> <headline>Daunenpelz Minna 1</headline> <artikel>TS 344564-1</artikel> <farbe>1,3,4,6</farbe> <pics_sm>bps1_sm.jpg,bps2_sm.jpg,bps3_sm.jpg,bps4_sm.jpg</pics_sm> <pics_bg>bps1.jpg,bps2.jpg,bps3.jpg,bps4.jpg</pics_bg> <details><![CDATA[1Größte Erfolge: Paralympische City Weltmeisterschaft: Nächster großer Wettkampf:Biathlon Weltcup Paralympics 2006 in Turin]]</details> </produkt> beim traven des aufrufs oder arrays bekomme ich leerzeilen, "undefined" oder "null", je nachdem ich mit den knoten und child rumspiele... die funktion geladen, die aufgerufen wird, weißt dann den textfeldern die inhalte zu, etc... wenn dazu jemand eine antwort, lösung oder alternative hat wäre ich dafür sehr dankbar. einen schönen sonntag, danke, tom |
| | |
| | #2 (permalink) |
| Mac User Registriert seit: Jul 2006 Ort: Berlin
Beiträge: 167
|
soweit ich weiß, können CDATA Elemente nur in htmlText dargestellt werden. Also: deinTextfeld.html=true; o.ä. ich würd übrigens innerhalb der onLoad Funktion "this" statt "info_xml" benutzen. Wichtig ist auch, wann du Deine Arrays tracerst...(am besten nach fertigem Laden, also am besten nach Aufruf der geladen() Funktion).
__________________ Schöne Grüße, best regards prizma Geändert von prizma (27-08-2006 um 13:53 Uhr) |
| | |
| | #3 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
erst mal das xml richtig schreiben. da fehlt was: ]] > </details> und dann mal das script aufräumen ;-) Code: function ladeXML() {
info_xml = new XML();
info_xml.ignoreWhite = true;
info_xml.load("test.xml");
info_xml.onLoad = function(ok) {
if (ok) {
head_array = [];
artikel_array = [];
details_array = [];
thumbs_array = [];
images_array = [];
farbe_array = [];
var inf = info_xml.firstChild.childNodes;
for (var y = 0; y<inf.length; y++) {
var infy = inf[y].childNodes;
head_array.push(infy[0].firstChild.nodeValue);
artikel_array.push(infy[1].firstChild.nodeValue);
farbe_array.push(infy[2].firstChild.nodeValue);
thumbs_array.push(infy[3].firstChild.nodeValue);
images_array.push(infy[4].firstChild.nodeValue);
details_array.push(infy[5].firstChild.nodeValue);
}
}
};
}
ladeXML();
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (27-08-2006 um 14:03 Uhr) |
| | |
| | #5 (permalink) | ||
| // Knäckebrot Registriert seit: Mar 2002 Ort: München
Beiträge: 283
| Zitat:
Zitat:
this.ignoreWhite = true; oder this.info_xml.ignoreWhite = true; wenn ersteres, wie geht das? das this bezieht sich doch im prinzip auf den mc wo ich grade bin und nicht auf das objekt info_xml, das ich ja mit den inhalten der xml generiere... und dickes danke für dein adlerauge, hgseib, das war der hauptfehler... hab ich einfach nicht gesehen... menno, das ärgert mich immer sowas... danke euch beiden, lg, tom | ||
| | |
| | #6 (permalink) |
| Mac User Registriert seit: Jul 2006 Ort: Berlin
Beiträge: 167
|
hi, ne, ich meine "nur" innerhalb der onLoad Funktion. Aber erspar Dir das...ist wohl doch nicht von Bedeutung. ;-)) Funktioniert das jetzt mit CDATA nun?
__________________ Schöne Grüße, best regards prizma |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |