I nuläget kan jag egentligen ingenting om XML (ännu) men blev ombedd fixa en ASP-sida som ska visa data från ett xml-dokument på en annan webbserver. "Flödesobjektet" är antagligen ADODB.Stream object.Ett XML problem
Har fått hjälp med kod för att läsa in den till ett recordset men får följande fel:
-----
Microsoft OLEDB Persistence Provider fel '80004005'
Flödesobjektet kan inte läsas eftersom det är tomt eller för att den aktuella positionen ligger i slutet av flödet. För flöden som inte är tomma ställer du in aktuell position i Positionsegenskaper. Om du vill ta reda på om ett flöde är tomt kontrollerar du Storleksegenskaper.
-----
Kontrollera position och storlek kan jag väl inte göra förrän efter recordsetet är inläst, eller?
Koden ser ut så här:
<code>
Function getXmlDoc(URL)
Set oHttpReq = Server.CreateObject("MSXML2.XMLHTTP.4.0")
oHttpReq.open "GET", URL, False
oHttpReq.send
Set getXmlDoc = oHttpReq.responseXML
End Function
Dim objDoc, oRS
Set objDoc = getXmlDoc(URL)
Set oRS = Server.CreateObject("ADODB.RecordSet")
oRS.Open objDoc ' denna rad ger felet
If oRS.RecordCount > 0 Then
...
</code>Sv: Ett XML problem
Vad som menas är alltså att du ska kolla om XML-dokumentet är tomt, innan du försöker stoppa in det i ett Recordset.
Mest sannolik orsak: XML dokumentet är tomt eller kan inte läsas in pga något fel i det.
Kan du skriva ut det med XmlDoc.xml, som returnerar en String ?
ADODB-XML behöver ett dokument som baseras på RowsetSchema
Du kan inte läsa in vad som helst, det fattar den inte...
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarado/html/xmlintegrationinado.asp
Här finns en artikel i ämnet:
http://msdn.microsoft.com/msdnmag/issues/0800/serving/default.aspx
Varför ska du stoppa in det i ett Recordset?
De är nog inte nödvändigt alls om du ska hämta ett dokument fårn en server, för att skruva om det till HTML. Klart mycket bättre att använda XSL-transform.