![]() |
Probleme beim Attribute finden
Hallo
Ich hab folgende Ausschnitt aus einer XML-Datei:
Code:
Ich bin dabei das Attribute "PInsertion" der jeweiligen <Set LineNo="#"> zu ändern.
<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> Beim ersten habe ich es geschafft das Attribute zu finden und zu ändern:
Delphi-Quellcode:
Nun würd ich gern wissen warum ich es nicht bei den anderen <Set LineNo="2"> und Set LineNo="3">
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; mit dem folgenden code nicht schaffe. Ich hoffe einer von euch hat die Lösung oder entdeckt meinen fehler
Delphi-Quellcode:
Danke schon mal im Vorraus
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; |
AW: Probleme beim Attribute finden
In XML gibt es Elemente
XML-Code:
<element>das ist ein Element</element>
und Attribute
XML-Code:
<nocheinelement attribut1="ich bin ein attribut" attribut2="nr 2" />
Wir reden hier also von Elementen. Aber du brauchst zunächst einmal die Grundlagen von XPath. ![]() Du brauchst ca. einen Tag, bis du die Grundlagen verstanden hast. XPath ist quasi das was SQL für Datenbanken ist; eine Syntax oder Sprache zur Abfrage von Daten. Nimm Dir die Zeit XPath zu lernen und dann komm zurück um nach den Details zu fragen. |
AW: Probleme beim Attribute finden
Hallo.. Danke dein Link hat mir bisschen weitergeholfen hat zwar ne zeitlang gedauert bis ich es verstanden habe..(hoff ich zumindest) aber trotzdem check ichs nicht so ganz..
ich hab da mal eine andere Methode ausprobiert:
Delphi-Quellcode:
diese Funktioniert auch nicht so richtig..
aapp := alxml.DocumentElement.ChildNodes['Set'];
if aapp.HasAttribute('LineNo') and aapp.Attributes['LineNo'] = '2' then begin aapp := aapp.ChildNodes.FindNode('PInsertion'); if aapp <> nil then begin aapp.text:= IntToStr(varx)+','+IntToStr(vary)+','+IntToStr(varz); end; end; was mache ich falsch ... verzweifel schon |
AW: Probleme beim Attribute finden
Zitat:
Wenn das Gezeigte dein genau Code ist, womit du es probiert hast (also nichts Verfälschtes/Vereinfachtes), dann kann ich mir den/einen Fehler zwar denken, aber dennoch ... Zitat:
- was für eine Fehlermaldung wird angezeigt - und oder was läuft wie falsch (Fehlerbeschreibung) Zitat:
|
AW: Probleme beim Attribute finden
Das Programm so wie oben gepostet funktioniert fehlerfrei.. also es kommt kein Fehler, doch es ändert mir den Wert beim Element bei Set-->LineNo="2"-->PInsertion nicht... hmm
Ich hab schon ein paar methoden ausprobiert..aber die ist die für mich die logischte, aber da tut sich halt nichts.. |
AW: Probleme beim Attribute finden
Okay ich formulier mal eine andere Frage.
Wie finde ich das Attribut --> <Set LineNo="2"> dann kann ich dort nach <PInsertion> suchen und es ändern. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 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-2025 by Thomas Breitkreuz