Lecture d'un RSS (version XmlAdapter)
# 0000000178
ajouté le 25/04/2005 10:47:54 et modifié le 25/04/2005
consulté 9234 fois
Niveau
initié
Version(s) Foxpro : VFP 9.0 VFP 8.0
Description
Le schéma XML est importé à partir de la structure des curseurs Foxpro.
NB :
- le format de date des RSS n'est pas reconnu par XmlAdapter.
- La procédure Modif_XMLname permet d'assurer la correspondance exacte (majuscule/minuscule) des identifiants XML avec les noms de champs du curseur Foxpro.
Code source :
LOCAL oXml as Microsoft.XMLHTTP
oXml = CreateObject("Microsoft.XMLHTTP")
oXml.open("GET","http://www.atoutfox.org/rss_contribs.asp")
oXml.send() local cXml WAITWINDOW"..."nowait DOWHILE oXml.readyState<>4 doevents ENDDO WAITclear
cXml=oXml.responseBody LOCAL o asXMLAdapter
o=NewObject("XmlAdapter")
o.LoadXML(cXml)
CREATECURSOR channel (title c(100), link c(68), description m, author c(30), pubdate c(31))
o.AddTableSchema("channel")
Modif_XMLname(o.tables(1),"pubdate","pubDate")
o.tables.item(1).toCursor(.t.,"channel") BROWSEnowait
CREATECURSORitem (title c(100), link c(68), description m, author c(30), pubdate c(31))
o.AddTableSchema("item")
mModif_XMLname(o.tables(2),"pubdate","pubDate")
o.tables.item(2).toCursor(.t.,"item") BROWSEnowait
PROCEDURE Modif_XMLname(oXmlTable asXMLtable, cAncien, cNouveau) LOCAL oField asXMLField LOCAL i
i=oXmlTable.Fields.GetKey(Strconv(cAncien,12))
oField = oXmlTable.Fields(i)
oXmlTable.Fields.remove(i)
oField.XMLName=Strconv(cNouveau,12)
oXmlTable.Fields.Add(oField , oField.XMLName) ENDPROC