AS3 XML betöltés PHP-n keresztül hibát ad
Elég fura dolgokba szaladok bele a napokban, a css kínomon már segítettek a vonatkozó fórumban, most azonban valami érdekesbe akadtam ismét.
Adott egy nagyon egyszerű xml betöltő flashben. A szokásos URLLoader, és URLRequest osztályokat használva próbálom egy változóba betölteni az adatokat.
Adott a következő xml:Ezt egy php file szolgáltatja. A böngészők,a firebug, minden teljesen frankó xmlnek látja. Flashben viszont ha célváltozó típusának XML-t adok meg:
private var trackList:XML;
A következő hibaüzenetet kapom:
Error #1088: The markup in the document following the root element must be well-formed.
Ha a böngészőben kijelölöm a php script által generált lap forrását, és lementem egy "valami.xml" nevű fájlba, és ezt kérem flashen keresztül, akkor mint a kisangyal feldolgozza, pedig teljesen azonos tartalomról van szó elméletben.
Ha pedig a váltózó típusát megváltoztatom:
private var trackList:XMLList;
Akkor a php scripttel is meg a valami.xml-el is feldolgozható adatot kapok, hiba nélkül, az adatok is a helyükön vannak.
Tovább tudnék dolgozni az XMLList-es verzióval, de ez így nem a normál működés. Érti ezt valaki?
■ Adott egy nagyon egyszerű xml betöltő flashben. A szokásos URLLoader, és URLRequest osztályokat használva próbálom egy változóba betölteni az adatokat.
Adott a következő xml:
<?xml version="1.0" encoding="UTF-8"?>
<musicXML>
<musicData id="2" filename="nota1.mp3" />
<musicData id="1" filename="nota2.mp3" />
</musicXML>
private var trackList:XML;
A következő hibaüzenetet kapom:
Error #1088: The markup in the document following the root element must be well-formed.
Ha a böngészőben kijelölöm a php script által generált lap forrását, és lementem egy "valami.xml" nevű fájlba, és ezt kérem flashen keresztül, akkor mint a kisangyal feldolgozza, pedig teljesen azonos tartalomról van szó elméletben.
Ha pedig a váltózó típusát megváltoztatom:
private var trackList:XMLList;
Akkor a php scripttel is meg a valami.xml-el is feldolgozható adatot kapok, hiba nélkül, az adatok is a helyükön vannak.
Tovább tudnék dolgozni az XMLList-es verzióval, de ez így nem a normál működés. Érti ezt valaki?
Hogyan töltöd be az adatokat?
BOM volt. Azért továbbra is kérdés...
És ha már leakad XML változóval a BOM miatt, akkor hogyan működhet XMLListtel?
Szabályzat
Mivel még mindig nem írtál kódot, nem tudható, hogy hogyan használtál és mit.
kód
private var trackList:XML;
trackList = new XML(e.target.data);
Biztosan notepad a ludas akkor.
Én embertől független olyan eszközre gondoltam, ami figyeli a megnyitott/mentett fájlok kódolását, és hogy van-e benne szemét. PL egy plugin dw alá, vagy valami hasonló megoldás. Mivel pl DW automatikusan felveszi a kódolást amit a fájlban lát, és külső fájlok includjánál (php-ről van szó) én pl rendszeresen elfelejtem megnézni, hogy van-e BOM (azt látom alul, hogy UTF-8, és haladok tovább). Persze lehet másoknak ez eszébe jut mindig, és csak én szívok kéthavonta fél napot emiatt. :D