>CLOSE DATABASES all >clear > >TEXT TO cXml NOSHOW ><?xml version="1.0"?> ><service> > <add key="key1" value="value1" /> > <add key="key2" value="value2" /> ></service> >ENDTEXT > >LOCAL oXA as XMLAdapter, oXT as XMLTable, oXF as XMLField > >oXA=CREATEOBJECT("XMLAdapter") >oXA.XMLSchemaLocation="" >oXA.XMLName=STRCONV("service",5) >oXA.LoadXML(cXML,.F.) > > >oXT=CreateXmlTable("add","addTable") >oXA.Tables.Add(oXT,oXT.XMLName) >AddXmlField(oXT,"key",.T.,"key","C",5) >AddXmlField(oXT,"value",.T.,"value","C",10) > >oXT.ToCursor() >ListTable(oXT) > >RETURN > > > >FUNCTION ListTable(oXT) >SELECT (oXT.Alias) >?ALIAS() >LIST >ENDFUNC > >FUNCTION CreateXmlTable(cXMLName,cAlias) > oXT=CREATEOBJECT("XMLTable") > oXT.XMLName=STRCONV(cXMLName,5) > oXT.Alias=cAlias > RETURN oXT >ENDFUNC > >FUNCTION AddXmlField(oXT,cXMLName,lAttribute,cAlias,cDataType,nMaxLength) > oXF=CREATEOBJECT("XMLField") > oXF.XMLName=STRCONV(cXMLName,5) > oXF.IsAttribute= lAttribute > oXF.Alias=cAlias > oXF.DataType=cDataType > oXF.MaxLength=nMaxLength > oXT.Fields.Add(oXF,oXF.XMLName) > RETURN oXF >ENDFUNC >>