webForumDet fria alternativet
Logga in / Bli medlem

Object required

JavaScript

9 svar · 500 visningar · startad av Pedda

Medlem sedan juni 20006 031 inlägg
Frågan#1

Håller på med ett javascript som hämtar information från en xml-fil och får ett error som säger "Object required". Men allt funkar annars som det ska.

xmlDoc=loadXMLDoc("C:/test/xmlfil.xml");
		var xmlTitle = xmlDoc.getElementsByTagName('title');
		var xmlUtgBet = xmlDoc.getElementsByTagName('bp_utgbet');
		var xmlMaterSystem = xmlDoc.getElementsByTagName('r_folder_path');
		var xmlFben = xmlDoc.getElementsByTagName('bp_fben');
		var xmlFbet = xmlDoc.getElementsByTagName('bp_fbet');
		var xmlTillhorighetFben = xmlDoc.getElementsByTagName('bp_thfben');
		var xmlTillhorighetFbet = xmlDoc.getElementsByTagName('bp_thfbet');
		var xmlFil = xmlDoc.getElementsByTagName('i_full_format');
		var xmlSize = xmlDoc.getElementsByTagName('r_content_size');
		
		var count = 1;
		
		for (i = 0; i < xmlTitle.length; i++)
		{	
		    var sTitel = xmlTitle[i].text;
		    var sUtgBet = xmlUtgBet[i].text;
    		    var sMaterSystem = xmlMaterSystem[i].text;
    		    var sFben = xmlFben[i].text;
    		    var sFbet = xmlFbet[i].text;
    		    var sTillhorighetFben = xmlTillhorighetFben[i].text;
                    .... osv

raden som jag får fel på är
var sUtgBet = xmlUtgBet*.text;

Vad kan jag ha gjort för fel?*

Medlem sedan juni 20031 837 inlägg
#2

Är du säker på att taggen "bp_utgbet" finns med i din XML-fil?
det är farligt att räkna med att saker finns i det man tar emot. man bör kontrollera att de inte är null innan man använder dem.

Medlem sedan juni 20006 031 inlägg
#3

Ja, den finns med.

Medlem sedan juni 20031 837 inlägg
#4

är du säker på att det finns lika många "bp_utgbet" som det finns "title"?
det är också farligt att förutse att det ska vara lika många av dem, där bör man också ha en kontroll så det verkligen stämmer.

Medlem sedan dec. 20025 483 inlägg
#5

Metoden returnerar en samling objekt - även om antalet bara är ett. Därför

var xmlUtgBet = xmlDoc.getElementsByTagName('bp_utgbet').[red]item(0)[/red];

...och detsamma på liknande rader.

Medlem sedan juni 20031 837 inlägg
#6

Peter S, han loopar över samlingen längre ner

for (i = 0; i < xmlTitle.length; i++)
Medlem sedan dec. 20025 483 inlägg
#7

Sant... :r

Medlem sedan juni 20006 031 inlägg
#8

The_Hulk skrev:

är du säker på att det finns lika många "bp_utgbet" som det finns "title"?
det är också farligt att förutse att det ska vara lika många av dem, där bör man också ha en kontroll så det verkligen stämmer.

Xml filen skrivs från ett dataset så den innehåller alltid lika många av alla element.

Medlem sedan juni 20031 837 inlägg
#9

går du något varv i din for-loop eller blir det fel på första?
skriv ut lite debug-utskrifter mellan varven så du ser var den krashar.

Medlem sedan juni 20006 031 inlägg
#10

Löste sig när jag gav alla variabler ett nollvärde innan jag läste in xml-filen.

276 ms totalt · 4 externa anrop · v20260731065814-full.0583408b
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
136 ms — ändringar (db)