nodos - Bibliotecas y tutoriales para XML en Delphi
delphi xmldoc (6)
Estoy planeando agregar soporte XML a la aplicación, pero no estoy familiarizado con la programación XML en Delphi. Básicamente, necesito crear objetos basados en nodos XML y generar archivos XML basados en objetos.
¿Qué biblioteca de componentes XML debería usar? ¿Hay buenos tutoriales para XML con Delphi?
Puede comenzar mirando el componente TXMLDocument de Delphi. Esto le proporcionará los conceptos básicos de trabajo con XML / DOM. Es simple y puede agregarse colocándolo en su Formulario. Tiene los métodos LoadFromFile y SaveToFile y se navega fácilmente.
Sin embargo, en algún momento agotarás las características de TXMLDocument, especialmente si quieres trabajar con cosas como XPath.
Sugiero que mires IXMLDOMDocument2 que es parte de MSXML2_TLB, por ejemplo
XML := CreateOleObject(''MSXML2.DOMDocument.3.0'') as IXMLDOMDocument2;
XML.async := false;
XML.SetProperty(''SelectionLanguage'',''XPath'');
Deberá agregar msxmldom, xmldom, XMLIntf, XMLDoc y MSXML2_TLB a su sección de usos.
Hay algunas bibliotecas de componentes por ahí pero sugeriría escribir su propia clase o funciones de ayuda. Aquí hay un ejemplo de uno que escribimos y usamos:
function XMLCreateRoot(var xml: IXMLDOMDocument2; RootName: string; xsl: string = ''''; encoding: string = ''ISO-8859-1''; language: string = ''XPath''): IXMLDOMNode;
var
NewPI: IXMLDOMProcessingInstruction;
begin
if language<>'''' then
xml.SetProperty(''SelectionLanguage'',''XPath'');
if encoding<>'''' then begin
NewPI:=xml.createProcessingInstruction(''xml'', ''version="1.0" encoding="''+encoding+''"'');
xml.appendChild(NewPI);
end;
if xsl<>'''' then begin
NewPI:=xml.createProcessingInstruction(''xml-stylesheet'',''type="text/xsl" href="''+xsl+''"'');
xml.appendChild(NewPI)
end;
xml.async := false;
xml.documentElement:=xml.createElement(RootName);
Result:=xml.documentElement;
end;
Tomar desde allí.
Puede utilizar la vinculación de datos XML de Delphi (Archivo - Nuevo - Otro - Mapeo XML (no sé exactamente la ruta, estoy en mi casa sin Delphi)).
Crea objetos / interfaces sobre proveedores de XML para que pueda trabajar con objetos / estructuras en lugar de archivos de texto xml.
No tiene que esforzarse al leer y escribir cada Elemento XML; solo está trabajando con colecciones de objetos y sus propiedades.
Puedes probar el siguiente libro: Delphi Developers Guide to XML
Básicamente, te recomendaría que uses DOM de Microsoft. Tendrá que importar la biblioteca como con cualquier otro objeto COM.
He estado trabajando con nativeXML desde hace aproximadamente un año. Mis necesidades son bastante simples. La fluidez XML es una pequeña parte de una aplicación más grande para mí, pero he podido implementar las piezas que necesito casi tan rápido como puedo codificarlas, la ayuda en línea es buena y mis necesidades se cumplieron en un día en lugar de una semana. o más largo. El segundo voto de davehay para nativeXML.
Aquí hay un par de tutoriales:
Además, es posible que desee examinar la unidad XMLIntf (aunque esta página enlazada de Delphi Wikia es muy liviana sobre el contenido).
Yo uso nativeXML desde simdesign. Si no trabajas con XML, estarás listo y funcionando en minutos.