LOCAL StringXML,StringXML2 *********************************************** * Aquí se crea un documento básico en XML que contiene * tres datos personales y un TAG vacío para las direcciones *********************************************** StringXML=[] StringXML = CreateDocumentXML(StringXML,"nombre","Aleix") StringXML = CreateDocumentXML(StringXML,"apellidos","Lamela") StringXML = CreateDocumentXML(StringXML,"dni","12345678A") StringXML = CreateDocumentXML(StringXML,"detallesDirecciones") *********************************************** * Ahora crearemos las direcciones de la misma manera *********************************************** StringXML2=[] StringXML2 = CreateDocumentXML(StringXML2,"Calle","Diagonal") StringXML2 = CreateDocumentXML(StringXML2,"Piso","4") StringXML2 = CreateDocumentXML(StringXML2,"Puerta","1") *********************************************** * Aqui vamos a agregar Documento XML a otro donde nos interese. *********************************************** LOCAL PadreXML as msxml2.DOMDocument LOCAL HijosXML as msxml2.DOMDocument LOCAL ELEMENTOS AS MSXML2.IXMLDOMElement PadreXML = CREATEOBJECT("msxml2.domdocument") HijosXML = CREATEOBJECT("msxml2.domdocument") HijosXML.async=.f. PadreXML.async=.f. HijosXML.loadXML(StringXML2) PadreXML.loadXML(StringXML) HijosXML.documentElement PadreXML.documentElement.selectSingleNode("detallesDirecciones").appendChild(HijosXML.documentElement) ************************************************ * Y ya esta , ahora solo tienes que mirar el contenido *********************************************** IF MESSAGEBOX("¿Desea guardar el contenido en disco?",32+4) = 6 PadreXML.save("c:DocumentoPersonal.xml") ELSE MESSAGEBOX(PadreXML.xml) ENDIF RETURN *********************************************** * Esta función Acepta Tres Parámetros, un Documento Raíz * , el Nuevo TAG que se le quiere agregar * Y el Valor del Tag *********************************************** FUNCTION CreateDocumentXML(DocumentRoot as String,; NewElement as String, ; NewValue as String) LOCAL ElDocumento as MSXML2.DOMDocument LOCAL ELElemento as MSXML2.IXMLDOMElement LOCAL LaRaiz as MSXML2.IXMLDOMElement IF PCOUNT() >= 1 THEN *********************************************** * Cargo el Documento nuevo *********************************************** ElDocumento = CREATEOBJECT("MSXML2.DOMDocument") ElDocumento.async= .F. ElDocumento.loadXML(DocumentRoot) ENDIF IF PCOUNT() >= 2 THEN *********************************************** * Extraigo los datos principales *********************************************** LaRaiz = ElDocumento.documentElement *********************************************** * Creo el nuevo Elemento *********************************************** ElElemento = ElDocumento.createElement(NewElement) LaRaiz.appendChild(ElElemento) ENDIF IF PCOUNT()=3 THEN LaRaiz.lastChild.text = NewValue ENDIF RETURN ElDocumento.xml ENDFUNC
18 de septiembre de 2001
Crea documentos XML anidados con VFP 7.0
Suscribirse a:
Comentarios de la entrada
(
Atom
)
Estimado Luis Maria. podrias validar el funcionamiento en VFP9. Me sale un error en la linea
ResponderBorrarLaRaiz = ElDocumento.documentElement
Buenas a todos,
ResponderBorrarme sale el error:
"LaRaiz no es un objeto",
en la linea:
LaRaiz.appendChild(ElElemento)
agradecido por una pronta y positiva respuesta
AMedina