Escolar Documentos
Profissional Documentos
Cultura Documentos
</ ChildNode>
attr2="2"> <childnode
</ ChildNode>
attr3="3"> <childnode
</ ChildNode>
</ ChildNodes>
<anotherchildnode>
com texto em que
</ Anotherchildnode>
</ Rootelement>
Inicie o assistente e import-lo.
Voc vai obter estas interfaces:
{} IXMLRootelementType
IXMLRootelementType = interface (IXMLNode)
['{875F00D6-2822-4DC7-B4F7-6178F9456EC8}']
Os assessores da propriedade {}
funo Get_Childnodes: IXMLChildnodesType;
funo Get_Anotherchildnode: WideString;
procedimento Set_Anotherchildnode (Valor: WideString);
{Mtodos e Propriedades}
ChildNodes propriedade: IXMLChildnodesType ler Get_Childnodes;
propriedade Anotherchildnode: WideString ler Get_Anotherchildnode
Set_Anotherchildnode escrever;
efeito;
{} IXMLChildnodesType
IXMLChildnodesType = interface (IXMLNodeCollection)
['{F26112C9-A8F2-4852-8EE2-86E50702015B}']
Os assessores da propriedade {}
Get_Attr1 funo: Integer;
funo Get_Childnode (Index: Integer): IXMLChildnodeType;
procedimento Set_Attr1 (Value: Integer);
{Mtodos e Propriedades}
Adicionar funo: IXMLChildnodeType;
Inserir funo (const Index: Integer): IXMLChildnodeType;
propriedade Attr1: Integer ler Get_Attr1 escrever Set_Attr1;
propriedade childNode [Index: Integer]: IXMLChildnodeType
leia Get_Childnode; padro;
efeito;
{} IXMLChildnodeType
IXMLChildnodeType = interface (IXMLNode)
['{E8DDAFCC-84BC-4067-808F-0D5DAF829436}']
Os assessores da propriedade {}
Get_Attr2 funo: Integer;
Get_Attr3 funo: Integer;
Set_Attr2 procedimento (Value: Integer);
Set_Attr3 procedimento (Value: Integer);
{Mtodos e Propriedades}
Attr2 propriedade: Integer ler Get_Attr2 escrever Set_Attr2;
Attr3 propriedade: Integer ler Get_Attr3 escrever Set_Attr3;
efeito;
Agora, se olharmos para este cdigo fonte, veremos que, por exemplo,
"AnotherChildNode" uma seqncia simples, enquanto ChildNodes tem o famoso.
Mtodo ADD.
Como voc usa essas interfaces? muito simples:
procedimento NewXMLFile (fora RootNode: IXMLRootelementType;
AnotherChildElement: String);
comear
RootNode: NewRootelement =;
RootNode.AnotherChildElement: AnotherChildElement =;
efeito;
procedimento AddChildElement (RootNode: IXMLRootElementType; attr2, attr3: String);
var childNode: IXMLChildNodeType;
comear
ChildNode: = RootNode.ChildNodes.Add;
ChildNode.Attr2: = attr2;
ChildNode.Attr3: = attr3;
efeito;
Vamos dar uma olhada em como o "NewRootElement" funo implementada:
funo Newrootelement: IXMLRootelementType;
comear
Resultado: = NewXMLDocument.GetDocBinding ('rootelement,
TXMLRootelementType) como IXMLRootelementType;
efeito;
O "NewXMLDocument" funo declarada no XMLDoc.pas e cria uma instncia
TXMLDocument interface.
Quando no usar o assistente XML vinculativo?
Como voc provavelmente observou, o XML ligao requer um parser DOM-orientado. Ou
seja, voc precisa estar carregando e mantendo todo o seu documento na memria.
Assim, voc no deve us-lo quando voc no precisar de todos o documento na memria.
Um exemplo disso pode ser, por exemplo, algum tipo de gerador de marca baseado.
Considere este arquivo XML:
<? Xml version = "1.0"?>
<build>
<taskdefs>
<taskdef name="DelphiCompiler" ExeFile="Dcc.exe"/>
</ Taskdefs>
<tasks>
<Task taskdef="DelphiCompiler" file="MyConsoleApp.dpr"/>
</ Tarefas>
</ Build>
Neste caso, voc simplesmente precisa analisar cada marca, voc no precisa de um DOM,
assim voc no precisa de um XML vinculado. Sim, voc ainda pode optar por usar uma,
mas isso no necessrio.
Outro caso quando voc precisa XPath, ento voc tem que usar a interface
IXMLDocument nativa. Mas isso para outro tutorial, realmente.
Concluses
Como voc pode ver, XML ligao bastante fcil de usar e poderoso. Tenho certeza que
voc vai gostar um pouco, na verdade, quando voc vai us-lo.
Agora voc sabe o bsico para us-lo eficientemente, basta ir e ligar os arquivos!