Recientemente hice esta función que recorre un XML y obtengo el valor que tiene en los nodos que tienen un nombre especifico. Puede ser un punto de partida.
Código Delphi
[-]
function TDataModulo.XMLExtraerNodo(const XMLPar: widestring; const PNodo: String): TStringList;
var
XMLDoc: IXMLDocument;
Lista: TStringList;
procedure AddNodes(ParentNode: TTreeNode; XMLNode: IXMLNode);
var
ChildNode: IXMLNode;
TreeNode: TTreeNode;
begin
if (XMLNode.IsTextElement) then
if XMLNode.NodeName = PNodo then
Lista.Add(XMLNode.Text);
ChildNode := XMLNode.ChildNodes.First;
while ChildNode <> nil do
begin
AddNodes(TreeNode, ChildNode);
ChildNode := ChildNode.NextSibling;
end;
end;
begin
try
lista:= TStringList.Create;
Lista.Clear;
XMLDoc := LoadXMLData(XMLPar);
if Assigned(XMLDoc.DocumentElement) then
AddNodes(nil, XMLDoc.DocumentElement);
finally
Result:= lista;
end;
end;
Teniendo en cuenta que el XML es un texto (String) tambien se pueden hacer reemplazos de texto usando comodines.
Código Delphi
[-]
MyXML := StringReplace(MyXML,'#COMODINUSUARIO',WideString(XMLUser), [rfReplaceAll, rfIgnoreCase]);
Saludos,