P Pedda Medlem sedan juni 2000 6 031 inlägg Frågan 27 juni 2007 17:24 #1 Felkonsollen i FF säger "Fel: xmlTOAviserad*.text has no properties
Källkodsfil: file:///C:/.../search_result.html
Rad: 152"
Koden på rad 152 är:
var splittedAvi = xmlTOAviserad*.text.split("T")
IE ger inget felmeddelande.**
P Peter S Medlem sedan dec. 2002 5 483 inlägg Det innebär med stor sannolikhet att xmlTOAviserad är null. Se vad alert(xmlTOAviserad ) ger.**
P Pedda Medlem sedan juni 2000 6 031 inlägg Jag har kollat i xmlfilen och den är inte null utan allt ser helt ok ut.
Händer ingenting om jag lägger in en alert.
P Peter S Medlem sedan dec. 2002 5 483 inlägg Har du lagt alert():en innan rad 152?
E emission Medlem sedan dec. 1999 6 721 inlägg Det är väl snarare .text som är null/odefinierad.
Installera FireBug nu!
P Pedda Medlem sedan juni 2000 6 031 inlägg Installerade FireBug, är nog tvungen att kolla runt lite innan jag fattar hur den fungerar.
E emission Medlem sedan dec. 1999 6 721 inlägg
Pedda skrev:
Installerade FireBug, är nog tvungen att kolla runt lite innan jag fattar hur den fungerar.
När du väl gjort det blir din dag förgylld! :)
P Pedda Medlem sedan juni 2000 6 031 inlägg Ok.
Jag la en breakpoint ett par rader upp och stegade mig ner.
På rad 152 har xmlTOAviserad*.text värdet "2005-01-25T16:38:14+01:00"
precis som det ska.
Går jag vidare till nästa rad så slängs jag ut på en gång.*
C colione Medlem sedan juni 2001 4 421 inlägg Prova att skriva om det såhär:
x=xmlTOAviserad[i]
var splittedAvi = x.text.split("T")
Brukar kunna avhjälpa sådana fel. :)
C colione Medlem sedan juni 2001 4 421 inlägg kan du köra en alert på:
x=xmlTOAviserad
alert(x)
alert(x.text)
alert(typeof x.text)
C colione Medlem sedan juni 2001 4 421 inlägg Annars, kan vi få se hur hela koden ser ut och ett exempel på en xml-fil du hämtar in?
P Pedda Medlem sedan juni 2000 6 031 inlägg
colione skrev:
kan du köra en alert på:
x=xmlTOAviserad
alert(x)
alert(x.text)
alert(typeof x.text)
[object Element]
undefined
undefined
Borde ju inte vara undefined, Firebug visade ju att den hade ett värde
Z zcorpan Medlem sedan dec. 2004 2 245 inlägg Testa .textContent istället för .text.
P Pedda Medlem sedan juni 2000 6 031 inlägg undefined
Även IE ger felmeddelande då
Så här ser funktionen ut nu, inte den snyggaste koden. :r
function searchXMLforAviserade(af, df, mf, uf, ufa, ufm, ufs)
{
xmlDoc=loadXMLDoc("doclist.xml");
var xmlTyp = xmlDoc.getElementsByTagName('to_typ');
var xmlMateriel = xmlDoc.getElementsByTagName('to_mtrl');
var xmlGrupp = xmlDoc.getElementsByTagName('to_grupp');
var xmlLopnummer = xmlDoc.getElementsByTagName('to_lopnr');
var xmlVersion = xmlDoc.getElementsByTagName('to_versioner');
var xmlFbet = xmlDoc.getElementsByTagName('to_fbet');
var xmlArendemening = xmlDoc.getElementsByTagName('to_arendemening');
var xmlTillhorighet = xmlDoc.getElementsByTagName('to_tillh');
var xmlModprio = xmlDoc.getElementsByTagName('to_klass');
var xmlKod = xmlDoc.getElementsByTagName('to_kod');
var xmlGiltig = xmlDoc.getElementsByTagName('to_giltig');
var xmlFaststalld = xmlDoc.getElementsByTagName('to_faststalld');
var xmlMediaNo = xmlDoc.getElementsByTagName('MediaNo');
var xmlFileLocation = xmlDoc.getElementsByTagName('a_webc_url');
var xmlFil = xmlDoc.getElementsByTagName('a_content_type');
var xmlToBeteckning = xmlDoc.getElementsByTagName('object_name');
var xmlFolderPath = xmlDoc.getElementsByTagName('r_folder_path');
var xmlSize = xmlDoc.getElementsByTagName('r_content_size');
var xmlAviserad = xmlDoc.getElementsByTagName('aviserad_date');
var xmlTOAviserad = xmlDoc.getElementsByTagName('to_avisering');
var count = 1;
for (i = 0; i < xmlMediaNo.length; i++)
{
var sTyp = xmlTyp[i].text;
var sMateriel = xmlMateriel[i].text;
var sGrupp = xmlGrupp[i].text;
var sLopnummer = xmlLopnummer[i].text;
var sVersion = xmlVersion[i].text;
var sFbet = xmlFbet[i].text;
var sArendemening = xmlArendemening[i].text;
var sTillhorighet = xmlTillhorighet[i].text;
var sModprio = xmlModprio[i].text;
var sKod = xmlKod[i].text;
var sAviseradDate = xmlAviserad[i].text;
var sTOAviserad = xmlTOAviserad[i].text;
var sGiltig = xmlGiltig[i].text;
var sSize = '0';
var sFaststalld = xmlFaststalld[i].text;
if (sTOAviserad != "1900-01-01T00:00:00+01:00") {
var splittedAvi = sTOAviserad.split("T")
sTOaviserad = splittedAvi[0];
} else {
sTOaviserad = '';
}
if (sGiltig != "1900-01-01T00:00:00+01:00") {
var splittedGiltig = sGiltig.split("T")
sGiltig = splittedGiltig[0];
} else {
sGiltig = '';
}
if (xmlSize[i].text != "0") {
sSize = xmlSize[i].text;
}
if (sFaststalld == "1900-01-01T00:00:00+01:00") {
sFaststalld = '';
}
sMediaNo = xmlMediaNo[i].text;
sFil = xmlFil[i].text;
if(sTyp.length == 0) {
sTyp = ".........";
}
if(sTyp.toUpperCase() == af || sTyp.toUpperCase() == df || sTyp.toUpperCase() == mf || sTyp.toUpperCase() == uf || sTyp.toUpperCase() == ufa || sTyp.toUpperCase() == ufm || sTyp.toUpperCase() == ufs && sAviseradDate <= sTOaviserad)
{
var elementSelect = document.getElementById('hitTable');
var tb=document.createElement('tbody');
var tr = document.createElement('tr');
var tdNumb = document.createElement('td');
tdNumb.className = "list_table_cell";
var tdNumber = document.createTextNode(count);
tdNumb.appendChild(tdNumber);
var tdTitel = document.createElement('td');
tdTitel.className = "list_table_cell";
var tdTitelText = document.createTextNode(xmlToBeteckning[i].text);
tdTitel.appendChild(tdTitelText);
var tdArendemening = document.createElement('td');
tdArendemening.className = "list_table_cell";
var tdArendemeningText = document.createTextNode(xmlArendemening[i].text);
tdArendemening.appendChild(tdArendemeningText);
var tdGiltig = document.createElement('td');
tdGiltig.className = "list_table_cell";
var tdGiltigText = document.createTextNode(sGiltig);
tdGiltig.appendChild(tdGiltigText);
var tdModprio = document.createElement('td');
tdModprio.className = "list_table_cell";
var tdModprioText = document.createTextNode(xmlModprio[i].text);
tdModprio.appendChild(tdModprioText);
var tdKod = document.createElement('td');
tdKod.className = "list_table_cell";
var tdKodText = document.createTextNode(xmlKod[i].text);
tdKod.appendChild(tdKodText);
var tdMetadata = document.createElement('td');
tdMetadata.className = "list_table_cell";
var newLink=document.createElement('a');
newLink.setAttribute('href',xmlFolderPath[i].text + '/' + xmlFbet[i].text + '_mtd_sm.html');
newLink.setAttribute('target', 'banner');
var linkText=document.createTextNode('Metadata');
newLink.appendChild(linkText);
tdMetadata.appendChild(newLink);
if(sFil != null && sFil != "" && sFil != 'contentless')
{
// välj bild
switch(xmlFil[i].text){
case "pdf":
var img = '../images/pdficonsm.gif';
break;
case "doc", "msw6":
var img = '../images/dociconsm.gif';
break;
case "tif", "jpg":
var img = '../images/tificonsm.gif';
break;
case "html", "htm":
var img = '../images/htmliconsm.gif';
break;
case "", "contentless":
var img = '../images/othericonsm.gif';
break;
case "zip":
var img = '../images/doc_zip.gif';
break;
default:
var img = '../images/othericonsm.gif';
}
//skapa länk
var tdFil = document.createElement('td');
tdFil.className = "list_table_cell";
var image = document.createElement('img');
image.setAttribute('src', img);
image.setAttribute('border', 0);
var newFileLink=document.createElement('a');
newFileLink.setAttribute('href', "javascript:resolveLink('"+xmlFileLocation[i].text+"','"+xmlMediaNo[i].text+"')");
//newFileLink.setAttribute('target', 'main');
var newFileLinkText=document.createTextNode(' ' + xmlFil[i].text.toUpperCase() + ' (' + Math.round(sSize/1024) + ' KB)');
newFileLink.appendChild(newFileLinkText);
tdFil.appendChild(image);
tdFil.appendChild(newFileLink);
}
else
{
var tdFil = document.createElement('td');
tdFil.className = "list_table_cell";
var tdFilText = document.createTextNode('(Fil saknas)');
tdFil.appendChild(tdFilText);
}
tr.appendChild(tdNumb);
tr.appendChild(tdTitel);
tr.appendChild(tdArendemening);
tr.appendChild(tdGiltig);
tr.appendChild(tdModprio);
tr.appendChild(tdKod);
tr.appendChild(tdMetadata);
tr.appendChild(tdFil);
tb.appendChild(tr);
elementSelect.appendChild(tb);
count++;
}
}
}
C colione Medlem sedan juni 2001 4 421 inlägg Lite referens xml och hur du anropar funktionen vore kanon det med. :)
Jag antar att du använder w3 schools loadXMLdoc-funktion?
http://www.w3schools.com/dom/loadxmldoc.asp
P Pedda Medlem sedan juni 2000 6 031 inlägg Var tvungen att rusa till bussen, men nu är det en ny dag med nya tag. :)
Japp, det är koden från w3schools som jag använder.
En nerbantad version av xml filen
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Doc>
<a_webc_url>ALLM/510/AF ALLM 510-1D.pdf</a_webc_url>
<a_content_type>pdf</a_content_type>
<aviserad_date>2007-05-24T00:00:00+02:00</aviserad_date>
<to_giltig>1900-01-01T00:00:00+01:00</to_giltig>
<to_klass>V</to_klass>
<object_name>AF ALLM 510-1D</object_name>
<r_content_size>156744</r_content_size>
<r_folder_path>ALLM/510</r_folder_path>
<to_sakbyra>TC Logistik</to_sakbyra>
<to_sakhandl>VO Log Harri Aaltonen</to_sakhandl>
<to_fbet>M7784-009450</to_fbet>
<to_typ>AF</to_typ>
<to_mtrl>ALLM</to_mtrl>
<to_grupp>510</to_grupp>
<to_lopnr>1</to_lopnr>
<to_order>1</to_order>
<to_status>FASTSTÄLLD</to_status>
<to_sid>8</to_sid>
<to_utg>D</to_utg>
<to_avisering>2005-04-19T17:09:56+02:00</to_avisering>
<to_faststalld>2005-04-13T00:00:00+02:00</to_faststalld>
<r_current_state>1</r_current_state>
<to_arendemening>Oförstörande provning vid FV förband/, andra enheter</to_arendemening>
<to_tillh />
<to_versioner />
<to_kod>E</to_kod>
<to_upphavd_orsak xml:space="preserve"></to_upphavd_orsak>
<MediaNo>1</MediaNo>
</Doc>
<Doc>
<a_webc_url>ALLM/520/AF ALLM 520-3E.pdf</a_webc_url>
<a_content_type>pdf</a_content_type>
<aviserad_date>2007-05-24T00:00:00+02:00</aviserad_date>
<to_giltig>1900-01-01T00:00:00+01:00</to_giltig>
<to_klass>V</to_klass>
<object_name>AF ALLM 520-3E</object_name>
<r_content_size>1002779</r_content_size>
<r_folder_path>ALLM/520</r_folder_path>
<to_sakbyra>TC Logistik</to_sakbyra>
<to_sakhandl>KC Skydd BI Harri Aaltonen</to_sakhandl>
<to_fbet>M7784-009317</to_fbet>
<to_typ>AF</to_typ>
<to_mtrl>ALLM</to_mtrl>
<to_grupp>520</to_grupp>
<to_lopnr>3</to_lopnr>
<to_order>3</to_order>
<to_status>FASTSTÄLLD</to_status>
<to_sid>19</to_sid>
<to_utg>E</to_utg>
<to_avisering>2005-04-19T17:08:58+02:00</to_avisering>
<to_faststalld>2005-04-13T00:00:00+02:00</to_faststalld>
<r_current_state>1</r_current_state>
<to_arendemening>Låsning av konstruktionsleement med, låstråd och låsvajer</to_arendemening>
<to_tillh />
<to_versioner />
<to_kod>E</to_kod>
<to_upphavd_orsak xml:space="preserve"></to_upphavd_orsak>
<MediaNo>1</MediaNo>
</Doc>
</NewDataSet>
C colione Medlem sedan juni 2001 4 421 inlägg Funktionen nertagen till det väsentliga:
function searchXMLforAviserade()
{
xmlDoc=loadXMLDoc("foo.xml");
var xmlTOAviserad = xmlDoc.getElementsByTagName('to_avisering');
for (i = 0; i < xmlTOAviserad.length; i++)
{
var sTOAviserad = xmlTOAviserad[i].firstChild.nodeValue;
alert(sTOAviserad)
if (sTOAviserad != "1900-01-01T00:00:00+01:00") {
var sTOaviserad = sTOAviserad.split("T")[0];
alert(sTOaviserad);
} else {
sTOaviserad = '';
}
}
}
}
P Pedda Medlem sedan juni 2000 6 031 inlägg Den spottar ur sig datumen som den ska