Recent

Author Topic: XML: Modifing and Applying changes in a (sub)node  (Read 2020 times)

Hydexon

  • Full Member
  • ***
  • Posts: 170
XML: Modifing and Applying changes in a (sub)node
« on: February 05, 2013, 04:18:50 am »
I need of liitle help. When i wan't to modify an subnode, i do these procedures.

Code: [Select]
   FDOMNodes[0] := FXMLDoc.DocumentElement.FindNode('installoverdomproject');
   FDOMNodes[1] := FDOMNodes[0].FindNode('installationdata');
   FDOMNodes[2] := FDOMNodes[1].FindNode('setupinformation');
   FDOMNodes[3] := FDOMNodes[2].FindNode(ObjectType);

   FDOMNode[4] := FDOMNodes[3].FirstChild;

   while FDOMNodes[4] <> nil do begin
     if (FDOMNodes[4].Attributes.GetNamedItem('name').NodeValue = TmpStack.Values['name']) then
      Break
     else
      FDOMNodes[4] := FDOMNodes[3].NextSibling;
   end;

   if FDOMNodes[4] = nil then begin
    FDOMNodes[4] := FXMLDoc.CreateElement(ItemName);
    TDOMElement(TDOMNode).SetAttribute('name', TmpStack.IndexOfName('name'));

    NewNode:= True;
   end;

   TmpStack.Delete(TmpStack.IndexOfName('name'));


   for Fi := 0 to (TmpStack.Count -1) do begin
     FDOMNodes[5] := FXMLDoc.CreateElement(TmpStack.Names[fI]);
     FDOMNodes[6] := FXMLDoc.CreateTextNode(TmpStack.ValueFromIndex[fI]);

     FDOMNodes[5].AppendChild(FDOMNodes[6]);

     if NewNode = False then
      FDOMNodes[4].ReplaceChild(FDOMNodes[4].FindNode(TmpStack.Names[Fi]), FDOMNodes[5]);
     else
      FDOMNodes[4].AppendChild(FDOMNodes[5]);
   end;


But i'm stucked here, i need reestructure and replace these nodes with the new ones?, i need to do more code (even dirty).
Lazarus 1.0.4 Stable - FPC 2.6.0 - gtk2 | Linux Mint 14 Nadia | GNOME Shell 3.6.2 - Awesome | Intel x86 | HP Mini 1020-LA Netbook (old)
Lazarus 2.0.2 Stable - FPC 3.0.2 - Windows | Lenovo IdeaPad Y

 

TinyPortal © 2005-2018