Einzelnen Beitrag anzeigen

t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#1

Probleme beim Attribute finden

  Alt 27. Nov 2010, 23:36
Hallo

Ich hab folgende Ausschnitt aus einer XML-Datei:

Code:
<BuilderList>
  <Set LineNo="1">
    <Pname>KP_R02</Pname>
    <Count>3</Count>
    <Program>KP</Program>
    <PInsertion>100,200,300</PInsertion>
    </Set>

  <Set LineNo="2">
    <Pname>KP_R02</Pname>
    <Count>2</Count>
    <Program>KP</Program>
    <PInsertion>0,0,0</PInsertion>
    </Set>

  <Set LineNo="3">
    <Pname>KP_R01</Pname>
    <Count>1</Count>
    <Program>KP</Program>
    <PInsertion>0,0,0</PInsertion>
    </Set>
Ich bin dabei das Attribute "PInsertion" der jeweiligen <Set LineNo="#"> zu ändern.
Beim ersten habe ich es geschafft das Attribute zu finden und zu ändern:

Delphi-Quellcode:
if aapp <> nil then
    begin
      aapp := aapp.ChildNodes.FindNode('BuilderList');
    end;
    if aapp <> nil then
    begin
      aapp := aapp.ChildNodes.FindNode('Set');
    end;
    if aapp <> nil then
    begin
      aapp := aapp.ChildNodes.FindNode('PInsertion');
    end;
    if aapp <> nil then
    begin
      aapp.text:= IntToStr(varx)+','+IntToStr(vary)+','+IntToStr(varz);
    end;
Nun würd ich gern wissen warum ich es nicht bei den anderen <Set LineNo="2"> und Set LineNo="3">
mit dem folgenden code nicht schaffe. Ich hoffe einer von euch hat die Lösung oder entdeckt meinen fehler

Delphi-Quellcode:
if aapp <> nil then
    begin
      aapp := aapp.ChildNodes.FindNode('BuilderList');
    end;
    if aapp <> nil then
    begin
      aapp := aapp.ChildNodes.FindNode('Set');
    end;
    if aapp <> nil then
    begin
    aapp := aapp.AttributeNodes.FindNode('LineNo="2"');
    end;
    aapp.AttributeNodes.
    if aapp <> nil then
    begin
      aapp := aapp.ChildNodes.FindNode('PInsertion');
    end;
    if aapp <> nil then
    begin
      aapp.text:= IntToStr(varx)+','+IntToStr(vary)+','+IntToStr(varz);
    end;
Danke schon mal im Vorraus

Geändert von t0mmy (27. Nov 2010 um 23:37 Uhr) Grund: PInsertion
  Mit Zitat antworten Zitat