P Pedda Medlem sedan juni 2000 6 031 inlägg Trådstart 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.
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