Gennemløb af XML-dokument
Hej eksperterJeg er ved at hente tilbud fra et xml-dokument og ind i min database - sker ved gennemløb af xml-dokumentet. Tilbudet i xml-dokumentet ligner dette:
<Product>
<Offer type="MANUFACTURER_PRODUCTS" id="iiiiiii">
<Title>xxxxx</Title>
<Description>wwwww</Description>
<Images>
<Image>
<Url>qqqqq</Url>
<Height>90</Height>
<Width>90</Width>
</Image>
<ZoomImage>
<Url>yyyy</Url>
</ZoomImage>
</Images>
<Url>xxxxx</Url>
<Merchant id="iiiii">
<Name>wwwww</Name>
<Logo>
<Url>rrrrrr</Url>
<Width>80</Width>
<Height>24</Height>
</Logo>
</Merchant>
<Category id="110201">
<Name>Diverse</Name>
</Category>
<Price currency="DKK">
<Price>245</Price>
<PriceDetail>(Fra pris per natt)</PriceDetail>
<DeliveryCost>P&P: N.C.</DeliveryCost>
<DeliveryCostDetails>
<DeliveryCost>-1</DeliveryCost>
</DeliveryCostDetails>
<TotalPrice>245</TotalPrice>
</Price>
<ProductClass>0</ProductClass>
<Availability>3</Availability>
<Promo/>
<OffensiveContent>false</OffensiveContent>
<FinancingOption/>
<MerchantCategory>aaaaaaa</MerchantCategory>
<Brand></Brand>
<BrandId>-1</BrandId>
</Offer>
</Product>
og det går faktisk ok med at få dem i databasen ud fra:
<%
Server.ScriptTimeout = 1440
filnavn = "/filnavn.xml"
set doc = Server.CreateObject("MSXML2.DOMDocument")
call doc.load(Server.MapPath(filnavn))
set offers = doc.documentElement.selectNodes("//Offer")
' gennemløb de fundne data
for each Offer in offers
' hent data fra de relevante felter i XML'en
OfferId = offer.getAttribute("id")
.....
Duration = offer.selectSingleNode("Duration").text
' skriv til databasen...
SQL14 = "INSERT INTO xxxxx(Offerid, xxxxxx, Duration)"
SQL14 = SQL14 & "Values("
SQL14 = SQL14 & "'" & Offerid & "',"
..........
SQL14 = SQL14 & "'" & Duration & "'"
SQL14 = SQL14 & ")"
Set RS14 = conn.execute(SQL14)
next
%>
men problemet opstår, når alle tilbud ikke indeholder alle oplysninger. F.eks. kan der være et tilbud, hvor "Duration" slet ikke er med. Det betyder, at "Duration = offer.selectSingleNode("Duration").text" ikke kan defineres, og dermed fejler.
Mit spørgsmål er derfor - hvordan kan jeg sætte Duration til at være f.eks. Duration = "", hvis Duration slet ikke er med i xml-dokumentet for det enkelte produkt?
Det har bare drillet, så jeg håber virkelig, at nogle kan hjælpe mig ;-)