Avatar billede carstenandersen Nybegynder
08. juni 2012 - 12:01 Der er 3 kommentarer og
1 løsning

Gennemløb af XML-dokument

Hej eksperter

Jeg 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 ;-)
Avatar billede bvli Praktikant
08. juni 2012 - 12:15 #1
Det er vist ikke helt c#. Du skal nok stille spørgsmålet i script/asp gruppen.

I øvrigt er du virkelig nødt til at arbejde med din SQL. Det er et sikkerhedshul af dimensioner du har kodet der.
Avatar billede carstenandersen Nybegynder
08. juni 2012 - 12:22 #2
Ok, prøver den anden gruppe. Tak for hjælpen.

Det er en intern fil, hvorfor der ikke er taget den store højde for sikkerhedshuller ;-)
Avatar billede keysersoze Guru
08. juni 2012 - 12:24 #3
Set DurationNode = offer.selectSingleNode("Duration")
If Not DurationNode Is Nothing Then
  Duration = DurationNode.text
Else
  Duration = ""
End If
Avatar billede carstenandersen Nybegynder
08. juni 2012 - 12:35 #4
keysersoze, du har reddet min dag :-)

Det fungerer, sådan.

Jeg har oprettet dette spg., så du kan få dine fortjente point http://www.eksperten.dk/spm/964237

Tusind tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester