webForumDet fria alternativet

hämta xml med asp, hajar inte riktigt

Flash

36 svar · 1 465 visningar · startad av fakenick!

Medlem sedan juli 2002202 inlägg
Frågan#1

Hejsan!

Jag har kikat runt lite men inte hittat någonting som får mig att få förståelse hur jag skall få ut värdena i min XML-fil som ser ut så här:

- <offers>
- <offer>
  <date>070301</date> 
  <destination>Agadir</destination> 
  <hotel>Endast flyg</hotel> 
  <category>EF</category> 
  <oneweek url="" /> 
  <twoweeks url="http://ksb.apollo.se/cgi-bin/bokning.cgi/b_dsboka.w?v=0703010071GOTADIGAGA4GAGA4000&b-mode=lmp&p-foretag=apo&p-antvux=1&p-kat=&p-hotell=&p-valuta=sek">2448</twoweeks> 
  <threeweeks url="" /> 
  </offer>
- <offer>
  <date>070301</date> 
  <destination>Agadir</destination> 
  <hotel>Ospec utan dusch/wc</hotel> 
  <category>DR</category> 
  <oneweek url="" /> 
  <twoweeks url="http://ksb.apollo.se/cgi-bin/bokning.cgi/b_dsboka.w?v=0703010072GOTADIGAGA4GAGA4000&b-mode=lmp&p-foretag=apo&p-antvux=2&p-kat=&p-hotell=&p-valuta=sek">2948</twoweeks> 
  <threeweeks url="" /> 
  </offer>

Det jag vill ha ut (och som skall läggas i en flash):

Informationen inom taggarna: date, destination och sedan
priset som står inom oneweeks, twoweeks eller threeweeks-tag.

Det här skall göras till typ bildspel, där man visar ett erbjudande
åt gången. Någon som har tips på vart man skall kolla och hur man
kan bygga upp det?

Mvh John Norrby

Medlem sedan juni 20019 519 inlägg
#2

Dum fråga... varför använda ASP när Flash har stöd för XML?

class trip
{
	public var date:String;
	public var destination:String;
	public var hotel:String;
        ...
	
	public function trip(d:String, a:String, t:String)
	{
		date = d;
		destination = a;
		hotel = t;
	}
}

var sa:Array = new Array();

var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function()
{
	var nodes:Array = this.firstChild.childNodes;
	for(var i=0;i<nodes.length;i++)
	{
		sa.push(new trip(nodes[i].attributes.date, nodes[i].attributes.destination, nodes[i].attributes.hotel));
	}
}

xml.load("songs.xml");

for(var i:Number = 0;i<sa.length();i++)
{
  //trackInfo.text = sa[i].date + " - " + sa[i].hotelk;
}

(fult exempel)

Medlem sedan juli 2002202 inlägg
#3

jaha, det visste jag inte... :-P

men jag får inte fram priset me den koden va? jag har ju 3 olika..
oneweek, twoweek, threeweek att hämta priset ifrån...

och hur laddar man in informationen i flash i omgångar för att få
denna bildspelseffekt?

kan väl erkänna att jag är en nybörjare på att scripta i
flash medans vi ändå håller på... så jag antar att man skapar
en separat keyframe där koden du skrev läggs in...

sen hur man skall anropa funktionen och sånt har jag faktiskt
ingen större aning om... Man kan tänka mig att man gör en textruta
som man namnger och sätter till dynamisk?

Medlem sedan juni 20019 519 inlägg
#4

det är bara att lägga in i klassen twoweek osv... den kod jag bifogat är en array som heter "sa"

Informationen kommer in i SA arrayn så fort vi kör "onload" på xml variablen.
Mitt tips är att du läser i Flash hjälp fil hur man använder XML klassen.

Medlem sedan juni 20019 519 inlägg
#5

Sökt lite på google om XML förklaringar:
http://www.communitymx.com/content/article.cfm?cid=D1CB3

Medlem sedan juli 2002202 inlägg
#6

najs! tack så mycket! *läser*

Medlem sedan juli 2002202 inlägg
#7

okej!

nu har jag bara ett problem kvar...

det är att där jag vill hämta informationen ser ut som såhär:

http://www.apollo.se/staticpages/GetLastMinuteOffers.aspx?file=/se/got.html&reason=0

och den verkar inte kunna läsa från det dokumentet, antagligen
eftersom den inte har filändelsen xml?

hur skall man göra för att få det att fungera då?

Medlem sedan juni 20019 519 inlägg
#8

xml.load("http://www.apollo.se/staticpages/GetLastMinuteOffers.aspx?file=/se/got.html&reason=0") bör fungera... xml dokumentet ser OK ut...

Medlem sedan juli 2002202 inlägg
#9

det vägrar, får inte upp någon information alls! :(
skall man då försöka konvertera om den live till ett
xml-dokument eller något annat haxxigt? :-)

Medlem sedan dec. 19996 721 inlägg
#10

Nej, det är ett xml-dokument, oavsett filändelse. Är det så att din flash inte körs på apollo.se? Det måste den göra. Om så inte är fallet får du skapa en sida (t.ex. i asp) på din server som hämtar innehållet från Apollo och sedan skickar det vidare.

Hämta xml.
Response.Write xml

Medlem sedan sep. 2006867 inlägg
#11

Såhär fint förklarar Macromedia, ehrm, Adobe själva. Med exempel på asp/php som gör hämtningen åt dig:

http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_16520

MVH

Medlem sedan juli 2002202 inlägg
#12

nu har jag använt mig av hämta-skriv ut-funktionen...

och när jag kör asp-filen genom webben så skrivs all kod
ut korrekt... MEN....

när jag försöker loada denna asp-fil i flashdokumentet så
tar det stopp. den hämtar inte ut informationen... :(

men när jag gör ett eget xml-dokument och tar bort "-"
så fungerar det klockrent...

så här ser alltså filen ut:

http://www.apollo.se/staticpages/GetLastMinuteOffers.aspx?file=/se/got.html&reason=0

någon som vet vad detta kan bero på?

tack på förhand!

Medlem sedan juni 20019 519 inlägg
#13

Vad menar du med: "Ta bort "-""?
- inne i <threeweeks url=""> delen då?
annars är ju XML strukturen:

<?xml version="1.0" encoding="utf-8"?>
<offers>
  <offer>
    <date>070301</date>
    <destination>Södra Thailand-Ticket/Sista Mi</destination>
    <hotel>Endast flyg</hotel>
    <category>EF</category>
    <oneweek url="">

    </oneweek>
    <twoweeks url="http://ksb.apollo.se/cgi-bin/bokning.cgi/b_dsboka.w?v=0703010071GOTTHAGHKT4GHKT4000&amp;b-mode=lmp&amp;p-foretag=apo&amp;p-antvux=1&amp;p-kat=&amp;p-hotell=&amp;p-valuta=sek">5448</twoweeks>
    <threeweeks url="">
    </threeweeks>
  </offer>
...
Medlem sedan juli 2002202 inlägg
#14

jag kopierade allt innehåll i länken jag skickat...
och då fick jag ju även med - längst ute till vänster
på varje <offer>-tagg.

klistrade in det i ett dokument, tog bort "-" längst till
vänster, efter det så fungerade det... sen om det är
orsaken till varför det inte fungerar vet jag inte..

men något jag vet är att det inte fungerar just nu.. :P

http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_16520

gjort precis som det står där... får ut samma kod i min asp-fil som apollos
och som jag sedan loadar i flash... där tar det stopp... den hämtar inte fram
någonting alls. :(

får försöka trixa lite....

Medlem sedan sep. 2006867 inlägg
#15

Hmm, menar du "-" som Firefox och IE lägger till själva? Dom visas bara för att du, när du tittar på sidan, ska kunna minimera block som du vill. Prova att klicka på ett "-" så ser du. Om du däremot sparar sidan som ett xml-dokument och tittar på det i en texteditor (inte notepad/anteckningar för den klarar inte av att rendera radbryt ordentligt) så finns det inga "-" :) Var det inte dom minusen du menade så får du förklara lite mer!

MVH

Medlem sedan sep. 2006867 inlägg
#16

Ok, minusen finns inte med. Kan du posta din flash-kod där du läser in?

Medlem sedan juni 20019 519 inlägg
#17

XML struktur är inte med -<option> exempel.. det är så IE eller Firefox lägger in för att du ska lättare kunna se strukturen i ett XML dokument. Om du visar källkoden i ett XML dokument så får du den rätta strukturen på XMLen

Medlem sedan juli 2002202 inlägg
#18

Här kommer den!

Fungerade som sagt bra med en lokal xml-fil med samma innehåll..

// The first step is to activate the XML object
headlineXML = new XML();
/*
With the XML Object now active you must now load an XML foramtted document.
Any DTD or XLS formatting will be ignored.
*/
headlineXML.onLoad = myLoad;
headlineXML.load("xmlkod.asp");

// Before proceeding to far into the program, make sure the XML document has loaded
// Extract information from the XML file
function myLoad(ok) {
	if (ok == true) {
		Publish(this.firstChild);
	}
}

function Publish(HeadlineXMLNode) {
	if (HeadlineXMLNode.nodeName.toUpperCase() == "OFFERS") {
		content = "";
		offer = HeadlineXMLNode.firstChild;
		while (offer != null) {
			if (offer.nodeName.toUpperCase() == "OFFER") {
				thedate = "";
				destination = "";
				oneweek = "";
				element = offer.firstChild;
				while (element != null) {
					if (element.nodeName.toUpperCase() == "DATE") {
						thedate = element.firstChild.nodeValue;
					}
					if (element.nodeName.toUpperCase() == "DESTINATION") {
						destination = element.firstChild.nodeValue;
					}
					if (element.nodeName.toUpperCase() == "ONEWEEK") {
						oneweek = element.firstChild.nodeValue;
					}
					if (element.nodeName.toUpperCase() == "TWOWEEKS") {
						twoweeks = element.firstChild.nodeValue;
					}
					if (element.nodeName.toUpperCase() == "THREEWEEKS") {
						threeweeks = element.firstChild.nodeValue;
					}
					element = element.nextSibling;
				}
				content += ""+thedate+"<br><font size='+1'>"+destination+"</font><br>Endast "+oneweek+""+twoweeks+""+threeweeks+":-<br><br>";
				txt.htmltext=content;
			}
			offer = offer.nextSibling;
		}
	}
}
Medlem sedan juni 20019 519 inlägg
#19

använd en lokal asp fil med en kopia av xml filen från appolo som är i svar 11:
http://www.webforum.nu/showthread.php?p=1285063#post1285063 + glöm inte att köra flashen i "localhost" läge om du ska testa den..

Medlem sedan juli 2002202 inlägg
#20

ja, det är ju så det är uppbyggt just nu...

asp-fil: hämtar information från apollos xml och skriver ut informationen
swf-fil: koden som är postad här över och som loadar asp-filen med informationen

och båda dessa filer ligger på en webbserver som stödjer asp + xmlhttp.

267 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)