DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/)
-   ASP (http://www.daniweb.com/forums/forum62.html)
-   -   Asp and XML error (http://www.daniweb.com/forums/thread36219.html)

fogofogo Dec 2nd, 2005 7:30 am
Asp and XML error
 
Hello all,

I hope that this is in the right place - sorry if it is not.

I have an asp script (which is contained in a .vbs file) that takes info from an XML page and inserts it into a database. I was trying to get the the script to preform a test to see if the xml script contains a certain element - if it does, then enter it into a database.

Here is the code :

Dim XMLDom
Dim ItemID
Dim DbConn
Dim SQLString
Dim ANArticleNode
Dim ANArticleNode2
Dim CollectionOfArticleNodes
Dim CollectionOfArticleNodes2
Dim cst

Set XMLDom = CreateObject("MSXML2.DomDocument.4.0")
XMLDom.async = False
XMLDom.setProperty "ServerHTTPRequest", True

Set DbConn = Createobject("adodb.connection")
DbConn.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=test1.mdb"

'-- Load the XML data from your live URL
XMLDom.Load("http://feeds.directnews.org.uk/?ad96035d-f9fe-4a3f-a5b2-ad546b2ed850")

'-- Create a reference to a collection of all Article Tags within the downloaded XML Document
Set CollectionOfArticleNodes = XMLDom.SelectNodes("InfoStreamResults/Article/Categories/Category")

'-- Iterate the collection of Article Tags
For Each ANArticleNode in CollectionOfArticleNodes
        ItemID = ANArticleNode.SelectSingleNode("@ID").text
       
       
if ItemID = "430009735" then

set CollectionOfArticleNodes2 = XMLDom.SelectNodes("InfoStreamResults/Article")

   
Heading = ANArticleNode2.SelectSingleNode("Heading").text       
       

'-- Insert the item into the local database
SQLString = "INSERT INTO test (Heading) " _
                  & "VALUES('" & EncodeIt(Heading) & "');"
        DbConn.Execute(SQLString)       
       
End If
       
Next

'-- Handles quotations in text
Function EncodeIt(TextString)
        TextString = Replace(CStr(TextString), "''", "'")
        TextString = Replace(TextString, "'", "''")
        EncodeIt = TextString
End Function


And here is the error message I am getting :

Object required: "

any ideas as to what might be the problem here? I really appreciate any input as I have a horrible deadline for this! :o


Thanks folks

Lafinboy Dec 2nd, 2005 9:32 pm
Re: Asp and XML error
 
Your problem is caused because you are trying to reference a node from inside another node (does that make sense?). Anyway, try the modified script below:
<%
Dim XMLDom
Dim ItemID
Dim DbConn
Dim SQLString
Dim ANArticleNode
Dim ANArticleNode2
Dim CollectionOfArticleNodes
Dim CollectionOfArticleNodes2
Dim cst

Set XMLDom = CreateObject("MSXML2.DomDocument.4.0")
XMLDom.async = False
XMLDom.setProperty "ServerHTTPRequest", True

Set DbConn = Createobject("adodb.connection")
DbConn.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=test1.mdb"

'-- Load the XML data from your live URL
XMLDom.Load("http://feeds.directnews.org.uk/?ad96035d-f9fe-4a3f-a5b2-ad546b2ed850")

'-- Create a reference to a collection of all Article Tags within the downloaded XML Document
Set CollectionOfArticleNodes = XMLDom.SelectNodes("InfoStreamResults/Article")

'-- Iterate the collection of Article Tags
For Each ANArticleNode in CollectionOfArticleNodes
        '-- Now create a reference to the category tag
        Set CollectionOfArticleNodes2 = ANArticleNode.SelectNodes("Categories/Category")
        '-- And iterate through the nodes to test for a match
        For Each ANArticleNode2 in CollectionOfArticleNodes2
                ItemID = ANArticleNode2.SelectSingleNode("@ID").text
                if ItemID = "430009735" then
                        '-- Retrieve the value of the heading node from the current article
                        Heading = ANArticleNode.SelectSingleNode("Heading").text
       
                        '-- Insert the item into the local database
                        SQLString = "INSERT INTO test (Heading) " _
                        & "VALUES('" & EncodeIt(Heading) & "');"
                        DbConn.Execute(SQLString)       
                end if
        Next '-- check the next category ID
Next '-- move to the next article

'-- Handles quotations in text
Function EncodeIt(TextString)
        TextString = Replace(CStr(TextString), "''", "'")
        TextString = Replace(TextString, "'", "''")
        EncodeIt = TextString
End Function
%>


All times are GMT -4. The time now is 8:33 am.

Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC