Try the following sample to read Xml File contents
#include "FiveWin.ch"
#include "hbxml.ch"
//--------------------//
FUNCTION Main()
  LOCAL hFile, cFileName:=""
  LOCAL oXmlDoc, oXmlIter , oXmlNode, cFieldName, cFieldData, cMemo:=""
 Â
  cFileName := cGetFile( "XML File (*.Xml)|*.Xml|","Select the required XML file ",curdir())
 Â
  If !file(cFileName)
    Return nil
  Endif
 Â
  hFile := FOpen( cFileName )
 Â
  oXmlDoc := TXmlDocument():New( hFile )
 Â
  IF oXmlDoc:nStatus != HBXML_STATUS_OK
    Msginfo("Error reading XML ")
    RETURN
  ENDIF
 Â
  oXmlIter := TXmlIterator():New( oXmlDoc:oRoot )
  oXmlNode := oXmlIter:Find()
 Â
  // Dumping XML Data to cMemo, Creating header
  cMemo:=Padr("FieldName",25)+Padr("FieldData",30)+CRLF
  cMemo+=Replicate("-",55)+CRLF
 Â
  DO WHILE oXmlNode != NIL
 Â
    if !empty(oXmlNode:cData)
   Â
      if subs(oXmlNode:cData,1,1) # "<"
        cFieldName :=oXmlNode:cName
        cFieldData:=oXmlNode:cData
      Endif
   Â
    else
      cFieldName := oXmlNode:cName
    endif
    oXmlNode := oXmlIter:Next() // Proceed to the next field
    // Dumpix xml data to cMemo
    cMemo += Padr(cFieldName,25)+cFieldData+CRLF    Â
  ENDDO
  MemoWrit("YourXMLTxt.Txt",cMemo)
 Â
  // Display the contents of the newly created text file
  WinExec("notepad.exe YourXMLTxt.Txt")
Return nil
Are you using an ADO Recordset ?. If so, you can easily convert your data to xml format by using the following command
oRecordset:Save( "E:\MyAppFolder\MyTest.XML", adPersistXML )
Regards
Anser