Hoppa till innehåll

Sida 1 av 1
  • Du kan inte starta en ny tråd
  • Du kan inte svara i tråden

Läsa in flera XML noder med samma värde.

#1

  • Användare
  • PipPip
  • Grupp: Medlemmar
  • Inlägg: 49
  • Gick med: 2008-10-30
  • Ort:Säffle

Skrivet 25 jun 2012, 14:31

Hej, håller på att försöka läsa in ett XML-dokument. Dokumentet är uppbyggt såhär:

<InvoiceList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="AsitisInvoiceXML.xsd">
<Invoice>
<Company>Fnamn</Company>
<Description>Giltigt tom 2001-01-01</Description>
<Description>Förutsatt att det är betalt</Description>
<Description>M.m.</Description>
</Invoice>
<Invoice>
<Company>Fnamn2</Company>
<Description>Giltigt tom 2011-01-01</Description>
<Description>Förutsatt att det är betalt</Description>
<Description>Giltigt tom 2011-01-01</Description>
<Description>M.m.</Description>
</Invoice>
</InvoiceList>


Nu vill jag få ut giltighets tiden för varje Invoice och eftersom det kan finnas mer än en giltighetstid för varje Invoice så undrar jag hur jag ska göra?
Jag klarar att få ut första giltighetstiden men inte ifall det är flera giltighetstider.

Tack på förhand!
Mvh Erik
0

#2
Medlem är utloggad   Jonas__B 

  • Stjärna
  • Ikon
  • Grupp: Moderatorer
  • Inlägg: 4 080
  • Gick med: 2006-03-09
  • Ort:Göteborg

Skrivet 02 jul 2012, 15:19

Nodnamnet kanske du syftade på, inte värdet?

Ser strukturen likadan ut för varje Invoice så går det säkert bra.

Enligt detta exemplet: http://www.w3schools...xml_to_html.asp

kan man göra i ditt fall:

<script type="text/javascript">
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","dinxmlfil.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

var xmlfil=xmlDoc.getElementsByTagName("Invoice");
for (i=0;i<xmlfil.length;i++)
  { 
  
  var rad1 = xmlfil[i].getElementsByTagName("Description")[0].childNodes[0].nodeValue;

  var rad2 = xmlfil[i].getElementsByTagName("Description")[1].childNodes[0].nodeValue;

  var rad3 = xmlfil[i].getElementsByTagName("Description")[2].childNodes[0].nodeValue;
  
  }
</script>



Sedan får du parsa ut tiden på ett lämpligt sätt - möjligtvis med regexp, men det kanske inte alltid är säkert att eventuella datum som skrivs i de fälten alltid är giltlighetstid, eller?
Jonas :: Moderator - CD/DVD-bränning, Kameror, Print - om trycksaker samt Bildredigering.

Hjälpte jag dig, eller gillar du det jag skrev?!
Visa din uppskattning genom att klicka på Plus-ikonen till höger ----------------------------------------------------->>

Inlägget är redigerat av Jonas__B: 02 jul 2012, 15:21.

0
Sida 1 av 1
  • Du kan inte starta en ny tråd
  • Du kan inte svara i tråden

1 besökare läser just nu den här tråden, varav 0 medlem(mar) och 1 gäst(er)
 
 
Senast obesvarade trådar
Prenumerera på nyheter

Missa inte våra nya
smarta nyhetsbrev

Läs mer om nyhetsbreven här!
Beställ direkt:


Extreme
PC för Alla-nätverket