Avatar billede Slettet bruger
18. maj 2010 - 18:28 Der er 7 kommentarer og
1 løsning

xml og asp

Hej Eksperten

jeg sider med et lille problem og da jeg ikke er en haj i xml håber jeg en vil hjælpe mig..

jeg skal hente data via xml og det går også findt men da der er en gruppe under produkt står jeg af i viden..

String ser sådan ud..
<Products>
    <Product>
        <ProductCode>1</ProductCode>
        <ProductName>demovare</ProductName>
        <ProductDetails></ProductDetails>
        <ProductDescription>Dette er en demovare</ProductDescription>
        <ProductPrice>238</ProductPrice>
        <ProductImageURL>1.jpg</ProductImageURL>
        <ProductTimestampUpdated>01-01-2010 10:00:00</ProductTimestampUpdated>
        <StockCount>5</StockCount>
        <Groups>
            <Group>Test</Group>
            <Group>Data</Group>
            <Group>Nyheder</Group>
        </Groups>
    </Product>
    <Product>
        <ProductCode>2</ProductCode>
        <ProductName>testvare</ProductName>
        <ProductDetails></ProductDetails>
        <ProductDescription>Dette er en testvare</ProductDescription>
        <ProductPrice>208</ProductPrice>
        <ProductImageURL>2.jpg</ProductImageURL>
        <ProductTimestampUpdated>01-02-2010 10:00:00</ProductTimestampUpdated>
        <StockCount>50</StockCount>
        <Groups>
            <Group>Test</Group>
            <Group>Nyheder</Group>
        </Groups>
    </Product>
</Products>

jeg vil gerne have et script der kan løbe alle Product og sådan give mig Groups under Product er der en der kan hjælpe mig ?
Avatar billede arne_v Ekspert
18. maj 2010 - 18:52 #1
Det nemmeste var vel XPath og //Products/Product/Groups
Avatar billede Slettet bruger
18. maj 2010 - 20:25 #2
kan du give et kort script ?
Avatar billede arne_v Ekspert
19. maj 2010 - 02:18 #3
Set groups = doc.SelectNodes("//Products/Product/Groups ")
For Each g In groups
  ' process g
Next
Avatar billede Slettet bruger
23. maj 2010 - 11:28 #4
Hej Arne_v

jeg kan ikke få det til at virker..

<%
    Response.Clear
    Response.write "Test af produkter<br>"
   
    ' opret DOM træSet
    set objDocx = CreateObject("MSXML.DOMDocument") ' indlæs XML fil i DOM træ
    objDocx.Async = False
    objDocx.Load(Server.MapPath("vare.xml")) ' find alle medlem elementer
    If objDocx.parseError.errorCode = 0 Then
        Set Products = objDocx.GetElementsByTagName("Products")
        For Each Product in Products
            For Each elm in Product.ChildNodes
                varenr = elm.SelectSingleNode("ProductCode/text()").NodeValue
                Response.write varenr & "<br>"
                Set nList = objDocx.selectNodes("//Products/Product[ProductCode='" & varenr & "']/Groups")
                For Each n In nList
                    Response.write n.SelectSingleNode("Group/text()").NodeValue & "<br>"
                Next
                Response.write "<br>"
            next
        next
    else
        Response.write "<b>" & objDocx.parseError.errorCode & "</b> FEJL "
    end if

    set objDocx = Nothing
    set xmlHTTP = Nothing
%>

Håber du kan hjælpe mig her kan jeg kun få første del af gruppe frem. vil gerne have alle grupper under det produkt frem.
Avatar billede arne_v Ekspert
01. juni 2010 - 04:13 #5
n.SelectSingleNode("Group/text()")

vælger kun den første Group

n.SelectNodes("Group/text()")

og så en løkke vil hente alle Group
Avatar billede arne_v Ekspert
13. juni 2010 - 04:03 #6
OK ?
Avatar billede Slettet bruger
15. juni 2010 - 17:54 #7
Undskyld det lange svar tid.. jeg har helt glemt det..

Jeg har ikke kun få det til at virker helt. det driller mig en del..
Avatar billede arne_v Ekspert
16. juni 2010 - 01:09 #8
Hvordan ser din kode ud nu og hvad er fejlen?
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
Kurser inden for grundlæggende programmering

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