04. juni 2009 - 00:11
Der er
6 kommentarer
Lille hurtig xml hjælp
Hej Eksperter... Lille hurtig hjælp... Jeg har denne xml reader men, den tager kun den første post i xml dokumentet... kan ikke lige få et loop til at fungere... Nogle der kan se hvordan det kunne sættes ind? Og ekstra til det... Hvis der nu i samme gruppe (Product) findes 2 felter af eksempelvis (ProductID) skal dette bare skrives ??: Set objProductID1 = objCatalog.selectSingleNode("//Product/ProductID") Set objProductID2 = objCatalog.selectSingleNode("//Product/ProductID") <% ' Lav objektet der henter data Set objXml = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") ' Sæt eventuelt codepage (SXH_OPTION_URL_CODEPAGE) 'objXml.setOption 0, 0 ' Åben UTF-8 kodet XML-fil objXml.Open "GET", "/doc.xml", False ' Lever dataene objXml.Send Set objCatalog = objXml.responseXML Set objProductCode = objCatalog.selectSingleNode("//Product/ProductCode") Set objProductName = objCatalog.selectSingleNode("//Product/ProductName") strOutput = _ "<h1>Bog søgeresultat</h1>" & vbCrLf & _ "<p>ProductCode: " & objProductCode.Text & "<br/>" & vbCrLf & _ "ProductName: " & objProductName.Text & "</p>" & vbCrLf Set objXml = Nothing Set objCatalog = Nothing Set objProductCode = Nothing Set objProductName = Nothing Response.Write strOutput %>
Annonceindlæg fra COMM2IG
'Først hentes alle Product noder ind i en liste: Set objProducts = objCatalog.SelectNodes("//Product") strOutput = "" 'Så løbes noderne igennem: For Each objProduct In objProducts Set objProductCode = objProduct.selectSingleNode("ProductCode") Set objProductName = objProduct.selectSingleNode("ProductName") strOutput = strOutput & _ "<h1>Bog søgeresultat</h1>" & vbCrLf & _ "<p>ProductCode: " & objProductCode.Text & "<br/>" & vbCrLf & _ "ProductName: " & objProductName.Text & "</p>" & vbCrLf & vbCrLf Next Hvis der er flere ens tags i samme gruppe, bruges igen SelectNodes
Der er problemmer med ny linieskift... Det virker ikke at lave Replace(FormatString, vbCrLf,"<br>") Laver xml'en auto om til et eller andet ?
Jeg er ikke helt med på hvad du mener? Er det linjeskift i input eller strOutput?
Hej... I xml'en viser den f.eks.: <ProductDescription> <![CDATA[ Nedenfor er der linieskift Linie nr. 1 osv... ]]> </ProductDescription> Lige nu viser den således: "Nedenfor er der linieskift Linie nr. 1 osv..." Håber det kan forstås...
Prøv også at replace chr(10) og chr(13); Set objProducts = objCatalog.SelectNodes("//Product") strOutput = "" 'Så løbes noderne igennem: For Each objProduct In objProducts Set objProductCode = objProduct.selectSingleNode("ProductCode") Set objProductName = objProduct.selectSingleNode("ProductName") Dim tmpCnt : tmpCnt = objProductName.Text tmpCnt = replace(tmpCnt, vbCrLf, "<br>") tmpCnt = replace(tmpCnt, chr(10), "<br>") tmpCnt = replace(tmpCnt, chr(13), "<br>") strOutput = strOutput & _ "<h1>Bog søgeresultat</h1>" & vbCrLf & _ "<p>ProductCode: " & objProductCode.Text & "<br/>" & vbCrLf & _ "ProductName: " & tmpCnt & "</p>" & vbCrLf & vbCrLf Next --- Håber det lykkedes ;)
Hehe... det hjalp ;) et nyt problem er opstået... Hvis jeg har nogle gupper inde under //Product <Group>Blablabla</Group> <Group>Blablabla</Group> <Group>Blablabla</Group> Har prøvet med et loop magen til inde i det eksisterende...! Meen ikke rigtig det...
Kurser inden for grundlæggende programmering