PDA

Volledige versie bekijken : HTML inlezen


Phoenix3
%Europe/Berlin %540 %2010, 12:58
Iemand een idee hoe ik een tag uit een html pagina kan selecteren in flash ?

ik heb de html ingelezen mbv de URLLoader

daarna de URLLoader-data omgezet naar een string:

var HTML:String = String(e.target.data);

maar nu weet ik niet hoe ik een bepaalde tag er kan uitfilteren

(iets zoals: getElementById)

Phoenix3
%Europe/Berlin %553 %2010, 13:16
ik ben ondertss al een stapje verder

XML.ignoreWhitespace = false;
XML.prettyPrinting = false;
default xml namespace = new Namespace("http://www.w3.org/1999/xhtml");
var html:XML = XML(e.target.data);

for each(var tag:String in html..div.(hasOwnProperty("@id") && @id == "menu")..li){
trace(tag);
}

hiermee laadt ik alle listitems van een menu in, en dit blijkt te werken, op een eigen gemaakte pagina die correct gevalideerd wordt...

De pagina die ik wil inladen, is waarschijnlijk niet in orde, want als ik die probeer in te laden krijg ik:TypeError: Error #1085: Het elementtype "meta" moet worden afgesloten met de overeenkomstige eindtag "</meta>".
Hoe kan ik deze nu toch inladen, terwijl er een fout inzit ?

for each(var tag:String in html..div.(hasOwnProperty("@id") && @id == "menu")..li){
trace(tag);
}[/as]

reapertjuh
%Europe/Berlin %554 %2010, 13:18
Er zijn een aantal html elementen die ondersteund worden door flash die kan je zo gebruiken http://learnola.com/2008/12/03/actionscript-3-tutorial-using-html-and-css/

Je kan ze ook in je string zoeken met regular expressions:
var htmlString: String = "<header><title>mooi</title></header>"
var reg: RegExp = /<title>.*<\/title>/gi // dan krijg je alles terug tussen title

trace( htmlString.search( reg ) ); // begin index waar <title> begint
trace( htmlString.match( reg ) );

Phoenix3
%Europe/Berlin %580 %2010, 13:55
alvast bedankt voor je reactie, maar op de html die ik wil inlezen, werkt dit niet, zelf niet met de html-tag, ik krijg bij de trace( htmlString.search( reg ) ); als waarde -1 terug, terwijl de html-tag er wel is...

html die ik wil inladen:

http://www.vbal4.be/p010621.htm

reapertjuh
%Europe/Berlin %693 %2010, 16:38
dan heeft de html tag die je zoek waarschijnlijk nog arttributen bijv <a href="www.google.nl"></a>

verander deze regel
var reg: RegExp = /<title>.*<\/title>/gi // dan krijg je alles terug tussen title
in
var reg: RegExp = /(<title .*>.*<\/title>)|(<title>.*<\/title>)/gi

Ik weet niet of er betere manieren zijn om dit te doen.

Phoenix3
%Europe/Berlin %715 %2010, 17:10
dan krijg ik nog steeds -1 terug, denk dat het aan de site zelf ligt, maar ik heb echt die data nodig, is er geen manier om die pagina zelf af te halen, te fixen en daarna uit te lezen of zoiets ?