Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> parsowanie xml we flashu
karis
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


mam problem z parsowaniem pliku xml we flashu

plik xml ma taką konstrukcje:

  1. <content>
  2. <field>
  3. <next>
  4. <tag>somethink</tag>
  5. </next>
  6. </field>
  7. </content>


chce wyciągnac zawartosc tagu <tag>

i zacząłem to tak robic:


Kod
var myXML:XML = new XML();

myXML.ignoreWhite=true;

myXML.load("myxml.xml");
myXML.onLoad = function(success)
{
     if (success)
     {
         var content = myXML.firstChild.childNodes;
         
         var dueContent = content[2];
        
        
         trace(dueContent)
        
        
     }
};



bardzo proszę o pomoc
Go to the top of the page
+Quote Post
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


dawno nie pisałem nic w action script ale o ile się nie mylę to przez childNodes zwracasz się do węzłów potomnych znajdujących się jedynie 1 poziom niżej, a Ty potrzebujesz 3 poziomy, dlatego to powinno chyba wyglądać tak:

Kod
var content = myXML.firstChild.childNodes[0].childNodes[0].nodeValue;
Go to the top of the page
+Quote Post
karis
post
Post #3





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


zapomniałem dodać, że w tagu <field> mam x potomnych

Ten post edytował karis 16.08.2010, 09:38:27
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




[JAVASCRIPT] pobierz, plaintext
  1. var x:XML = <root>
  2. <test>
  3. <element>elements</element>
  4. <b>hehehe</b>
  5. </test>
  6. <test>
  7. <element>elements</element>
  8. <b>hehehe</b>
  9. </test>
  10. </root>;
  11. trace(x.descendants('b').length());
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post
karis
post
Post #5





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


to mi nie dziala ani w as2 ani w as3
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No a czym się objawia NIE działanie?
Go to the top of the page
+Quote Post
karis
post
Post #7





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


undefined w outpucie
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Pokaż swojego xmla, kod jaki teraz masz.
Go to the top of the page
+Quote Post
karis
post
Post #9





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


To jest mój XML

http://wklej.org/hash/551d9b701ed/

A to mój kod AS

http://wklej.org/hash/63b3b1b46b1/


chcę wyciągnąć zawartość tagu <open>

Ten post edytował karis 16.08.2010, 11:15:07
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Czytałeś co Ci dałem czy udajesz?

Ten post edytował wookieb 16.08.2010, 11:19:33
Go to the top of the page
+Quote Post
karis
post
Post #11





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


czytałem dobrze , sprawdzałeś ten kod? bo mi to nie działa i uwierz mi, że nie kopiowałem żywcem tylko pozmieniałem dla siebie na odpowiedni tag

w as2 dostaje komunikat , że nie ma tekiej metody descendants a w as3 taki:

TypeError: Error #1006: Wyrażenie value nie jest funkcją.
at Beznazwy_fla::MainTimeline/frame1()
Go to the top of the page
+Quote Post
wookieb
post
Post #12





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Właśnie, że kopiujesz półżywcem.
Metoda zwraca obiekt typu XMLList czyli LISTĘ znalezionych elementów (obiekt ten nie obsługuje value()). Możesz po niej przelecieć albo użyć
[JAVASCRIPT] pobierz, plaintext
  1. trace(x.descendants('b')[0].text());
[JAVASCRIPT] pobierz, plaintext

Opcji jest więcej

Ten post edytował wookieb 16.08.2010, 11:37:03
Go to the top of the page
+Quote Post
karis
post
Post #13





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


zobacz tak robie a dostaje komunikat:

Brak metody o nazwie descendants

[JAVASCRIPT] pobierz, plaintext
  1. var myXML:XML = new XML();
  2. myXML.ignoreWhite=true;
  3. myXML.load("dump_data.xml");
  4. myXML.onLoad = function(success)
  5. {
  6. if (success)
  7. {
  8.  
  9. trace(myXML.descendants('open')[0].text());
  10.  
  11.  
  12.  
  13. }
  14. };
[JAVASCRIPT] pobierz, plaintext


Ten post edytował karis 16.08.2010, 11:41:04
Go to the top of the page
+Quote Post
wookieb
post
Post #14





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ponieważ jest ona dostępna w as3. W as2 już się nie pisze.
Go to the top of the page
+Quote Post
karis
post
Post #15





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


to jak ma ten kod wyglądać w as3 nie znam kompletnie as3, więc proszę napisz mi jak ma wygladać
Go to the top of the page
+Quote Post
wookieb
post
Post #16





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://www.kirupa.com/developer/flashcs3/u...xml_as3_pg2.htm
Go to the top of the page
+Quote Post
karis
post
Post #17





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


coś już ruszyło, ale nadal mam taki problem

otóż dostaję komunikat:

Zwracana wartość musi być zdefiniowana


Oto mój kod:

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. var xmlLoader:URLLoader = new URLLoader();
  3. var xmlData:XML = new XML();
  4.  
  5. xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
  6.  
  7. xmlLoader.load(new URLRequest("dump_data.xml"));
  8.  
  9.  
  10. function LoadXML(e:Event):void
  11. {
  12.  
  13. xmlData = new XML(e.target.data);
  14. var open = ParseOpen(xmlData);
  15.  
  16. trace(open);
  17.  
  18.  
  19.  
  20.  
  21.  
  22. }
  23.  
  24. function ParseOpen(xmlData:XML):void
  25. {
  26.  
  27. var open = xmlData.descendants('open')[0].text();
  28.  
  29. return open;
  30.  
  31.  
  32. }
  33.  
[JAVASCRIPT] pobierz, plaintext


ten błąd występuje rzekomo w linii 28 czyli tam gdzie jest return open;

Ten post edytował karis 16.08.2010, 12:47:18
Go to the top of the page
+Quote Post
wookieb
post
Post #18





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Linia 24 zamien void na string. Zwracasz przecież ciąg znaków.
Go to the top of the page
+Quote Post
karis
post
Post #19





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


Cytat(wookieb @ 16.08.2010, 13:52:32 ) *
Linia 24 zamien void na string. Zwracasz przecież ciąg znaków.



super dzieki!

jeszcze gdybyś mi tylko powiedział jak pobrać w as3 parametry np: flash.swf?param1=sth

Go to the top of the page
+Quote Post
wookieb
post
Post #20





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




[JAVASCRIPT] pobierz, plaintext
  1. root.loaderInfo.parameters['nazwa_parametru']
  2. // lub
  3. root.loaderInfo.parameters.nazwa_parametru;
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:59