AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi XML-Referenz nach selectnodes
Thema durchsuchen
Ansicht
Themen-Optionen

XML-Referenz nach selectnodes

Ein Thema von StTüff · begonnen am 19. Jan 2007 · letzter Beitrag vom 25. Jan 2007
 
StTüff

Registriert seit: 3. Dez 2002
132 Beiträge
 
Delphi 2006 Enterprise
 
#1

XML-Referenz nach selectnodes

  Alt 19. Jan 2007, 09:48
Hallo!

Ich habe ein Programm geschrieben, in dem der Inhalt einer XML-Datei in einer Baumstruktur (TreeView) dargestellt wird. Zu jedem Knoten im TreeView gibt es eine Referenz auf den zugehörigen XML-Knoten. Somit kann ich eine Wertänderung im TreeView direkt im XML-Knoten speichern.

Soweit so gut. Ich habe aber nun eine Funktion, die per xpath bestimmte Knoten im XML auswählt und automatisch Werte verändert. Diese Änderung möchte ich nun auch direkt auf die TreeView-Anzeige übertragen, ohne den ganzen Baum neu Aufzubauen.
Ich habe also folgendes versucht:

Edit: Fehler korrigiert...
Delphi-Quellcode:
X_Path := '...... ';
XML_CheckNodeList:=XMLDataModule.XMLDoc.selectNodes(X_Path);
XML_CheckNodeList.reset();
XML_CheckNode:= XML_CheckNodeList.nextNode();
while XML_CheckNode <> nil do
begin
  //Was verändern
  .....
  
  //Nach dem passenden Knoten im TreeView suchen
  TreeNode:=FindTypNode(XML_CheckNode );
  
  //TreeNode verändern
  .....
  XML_CheckNode:= XML_CheckNodeList.nextNode();
end;

function FindTypNode(LinkedXMLNode:IXMLDOMNode):TTreeNode;
var
  cnt:integer;
begin
    //Durch alle Knoten laufen
    for cnt:= 0 to form1.TrView_Struktur.Items.Count-1 do
    begin
      if PNodeState(form1.TrView_Struktur.Items[cnt].Data).XMLNode
          = LinkedXMLNode
      then
      begin
        result:=form1.TrView_Struktur.Items[cnt];
        exit;
     end;
    end;
  result:=nil;
end;
Leider ist es aber so, dass die Refernezen (auf die XML-Knoten), die ich aus der NodeList erhalte nicht mit denen übereinstimmen, die im TreeView hinterlegt sind.

Wird bei "selectnodes" eine Kopie erzeugt?
Ich habe hier ein kleines Verständnisproblem. Deshalb möchte ich gerne:
1. wissen was da passiert
2. eine Lösung für das Problem finden.

Vielen Dank für Eure Unterstützung,

StTüff
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz