Thema: Delphi Attribute auslesen

Einzelnen Beitrag anzeigen

matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#1

Attribute auslesen

  Alt 13. Feb 2015, 10:49
Hallo zusammen,

nachdem ich jetzt schon einiges an Suchergebnissen durchgearbeitet habe aber auf keine Lösung gekommen bin die funktioniert hier mein Problem.

Ich möchte aus einer XML Datei bei folgendem Node die Attribute auslesen, im speziellem das Attribut Boardname.

Code:
?xml version="1.0" encoding="UTF-16"?>
<PCBData RecipeName="E1_Linie2\HM\HM Fest\HM Fest#1\HI_1384009-06" GenerateTraceData="True" TraceRequiresPCBBarcode="False" SiplaceProOID="28342960" BoardName="test\HI_1384009-06" SetupName="E1_Linie2\HM\HM Fest\HM Fest#1" LineName="E1_Linie2"
versucht hab ichs unter anderem mit folgendem Code, da bekomm ich aber nichtmal ein Node als gefunden zurück mynode bleibt also bei nil

Delphi-Quellcode:
            
              XMLdocument1.LoadFromFile(einstellungen.Pfad_Linecontrol);
              XMLdocument1.Active:=true;
              mynode:=XMLdocument1.ChildNodes.FindNode(Maschinen_Daten[ID].key);
              if mynode<>nil then begin;
                result:=vartostr(mynode.Attributes[Maschinen_Daten[ID].sektion]);
              end;
              XMLdocument1.Active:=false;
Bei den Maschinen Daten sind key und sektion noch so benannt weil früher ini-Strukturen gelesen wurden
Der Record wird an anderer Stelle gefüttert mit
key=PCBData
Sektion=BoardName


Was ich auch schon versucht habe aber ohne den Attribtu lesen zu können:
Delphi-Quellcode:
    if rootnode.ChildNodes[i].NodeName=suchnode then
                        if rootnode.ChildNodes[i].HasAttribute(suchattribut) then begin;
                          if rootnode.ChildNodes[i].attributes[suchattribut]<>NULL then
                            begin;
                              a:=vartostr(rootnode.ChildNodes[i].Attributes[suchattribut]);
                              break;
                            end;
                        end;
Hat jemand eine Lösung, evtl eine kleine Funktion wo mir hilft?

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat