AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche Hilfe bei XML-Datei

Ein Thema von verkouter · begonnen am 11. Jun 2016 · letzter Beitrag vom 19. Jun 2016
Antwort Antwort
Seite 1 von 2  1 2      
verkouter

Registriert seit: 29. Dez 2004
64 Beiträge
 
Delphi 2010 Architect
 
#1

Brauche Hilfe bei XML-Datei

  Alt 11. Jun 2016, 23:20
Ein Messgerät auf Arbeit liefert nach einer Messung eine Zip-Datei, in der eine XML-Datei gespeichert wird.
Code:
<Pile>
<Event name="RecordStart" pos="0" date="2016-06-08T18:02:59" data=""/>
<Config name="NameDLG" value="Dialog 88"/>
<Config name="VersionDLG" value="4.9.08"/>
<Config name="Firm" value="Test"/>
<Config name="Proc" value="SMX"/>
<Config name="Rec" value="REC0"/>
<Config name="JobSite" value="Testbaustelle"/>
<Config name="Contract" value="B1-B3"/>
<Config name="Rig" value="M1"/>
<Config name="Name1" value="R44S11"/>
<Config name="Name2" value=""/>
<Config name="Restart" value="0"/>
<Env name="Inclination" value="-0.00119055328173877;-0.00225370213759822"/>
<Env name="MachineLocation" value="Right"/>
&#65279;<Descript>
<Trigger>
<AffectTrig>TNTMN0</AffectTrig>
<Function>D+-</Function>
<Value>10.000000</Value>
<ID Size="4">2147483755</ID>
<NbParam Size="4">18</NbParam>
<Measure SizeInfo="2" SizeValue="8"/>
<Affect>SNTRN0</Affect>
<Affect>SNTMN0</Affect>
<Affect>SDBNN0</Affect>
<Affect>SDSNA0</Affect>
<Affect>SRPNN0</Affect>
<Affect>STPPN0</Affect>
<Affect>STPTN0</Affect>
<Affect>SRBNR0</Affect>
<Affect>SRBNS0</Affect>
<Affect>SRSNN0</Affect>
<Affect>SGPNN0</Affect>
<Affect>SGVNR0</Affect>
<Affect>SGVNS0</Affect>
<Affect>SGSNN0</Affect>
<Affect>SIBXN0</Affect>
<Affect>SIBYN0</Affect>
<Affect>SRFNN0</Affect>
<Affect>SROGN0</Affect>
</Trigger>
<Trigger>
<AffectTrig>TDBMN0</AffectTrig>
<Function>D+-</Function>
<Value>0.04</Value>
<ID Size="4">2147483774</ID>
<NbParam Size="4">18</NbParam>
<Measure SizeInfo="2" SizeValue="8"/>
<Affect>SNTRN0</Affect>
<Affect>SNTMN0</Affect>
<Affect>SDBNN0</Affect>
<Affect>SDSNA0</Affect>
<Affect>SRPNN0</Affect>
<Affect>STPPN0</Affect>
<Affect>STPTN0</Affect>
<Affect>SRBNR0</Affect>
<Affect>SRBNS0</Affect>
<Affect>SRSNN0</Affect>
<Affect>SGPNN0</Affect>
<Affect>SGVNR0</Affect>
<Affect>SGVNS0</Affect>
<Affect>SGSNN0</Affect>
<Affect>SIBXN0</Affect>
<Affect>SIBYN0</Affect>
<Affect>SRFNN0</Affect>
<Affect>SROGN0</Affect>
</Trigger>
</Descript>
<Event name="SetVal" pos="376" date="2016-06-08T18:02:59" data="SGVNR0:0
SGVNS0:0
SRBNR0:0
SRBNS0:0
"/>
<Event name="PhaseStart" pos="752" date="2016-06-08T18:02:59" data="0"/>
<Event name="MeasureDStart" pos="1128" date="2016-06-08T18:03:04" data=""/>
<Event name="MeasureDStop" pos="48692" date="2016-06-08T18:06:38" data=""/>
<Event name="PhaseStop" pos="49068" date="2016-06-08T18:06:38" data="0"/>
<Event name="RecordStop" pos="49444" date="2016-06-08T18:06:39" data=""/>
<Config name="ID" value="00364_R44S11_2016-06-08T18+02+58"/>
</Pile>
Wenn man sich am Messgerät vertippt hat, kann man den Namen der Messung nicht mehr ändern, auch das Auswerteprogramm am PC bietet keine Umbennenen-Funktion.

Ich wollte ein Programm schreiben, in dem man die Messdaten in Edits einliest, ändern kann und dann wieder als XML speichert. Nur leider habe ich keine Ahnung von XML. Alle Versuche haben nicht funktioniert.
Wichtig wäre der Eintrag
<Config name="Name1" value="R44S11"/>
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Brauche Hilfe bei XML-Datei

  Alt 11. Jun 2016, 23:29
Hallo,
wie wäre es, einfach ne TStringList zu nehmen ?


Heiko
Heiko
  Mit Zitat antworten Zitat
verkouter

Registriert seit: 29. Dez 2004
64 Beiträge
 
Delphi 2010 Architect
 
#3

AW: Brauche Hilfe bei XML-Datei

  Alt 12. Jun 2016, 10:44
Nein, ich muss mit den XML Knoten arbeiten, weil bei einem 2. Messgerät der Aufbau, der XML anders aufgebaut ist(andere Version), der Knoten aber gleich heißt.
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Brauche Hilfe bei XML-Datei

  Alt 12. Jun 2016, 10:51
Wie sehen denn Deine Versuche aus? Oder möchtest Du eine fertige Lösung? Dann wäre "Jobs" vielleicht die richtige Kategorie.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

AW: Brauche Hilfe bei XML-Datei

  Alt 12. Jun 2016, 11:14
Oder möchtest Du eine fertige Lösung? Dann wäre "Jobs" vielleicht die richtige Kategorie.
Das wirkt vielleicht doch etwas schroff auf jemand, der nur auf der Suche nach einem XML-Tutorial ist.

Es ist bei XML meist eine gute Idee, nicht per Hand darin rumzufummeln. Wenn du mit MSXML Probleme hast, findest du im Forum auch noch andere Alternativen.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
verkouter

Registriert seit: 29. Dez 2004
64 Beiträge
 
Delphi 2010 Architect
 
#6

AW: Brauche Hilfe bei XML-Datei

  Alt 12. Jun 2016, 12:34
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
 var
  xmlDoc : IXMLDocument;
begin
if opendialog1.Execute then
begin
  xmlDoc := newXMLDocument;
  xmlDoc.LoadFromFile(opendialog1.FileName);
  xmlDoc.Active := true;
  edit1.Text:=xmlDoc.DocumentElement.ChildNodes.FindNode('Config').ChildNodes['Name1'].Attributes['value'];
end;
end;
Bekomme immer eine Fehlermeldung "Variante des Typs(Null) konnte nicht in Typ (Olestr) konvertiert werden.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

AW: Brauche Hilfe bei XML-Datei

  Alt 12. Jun 2016, 12:53
Hier einmal eine Langversion:
Delphi-Quellcode:
uses XMLDoc, XMLIntf;

procedure TForm1.Button1Click(Sender: TObject);
var
  Doc: IXMLDocument;
  Node: IXMLNode;
  Name1: string;
begin
  Name1 := '';
  Doc := TXMLDocument.Create(nil);
  Doc.LoadFromFile(...); //Dateiname hier einsetzen
  Doc.Active := true;
  Node := Doc.DocumentElement.ChildNodes.FindNode('Config');
  while Assigned(Node) do
    begin
      if Node.HasAttribute('name') then
        if Node.Attributes['name'] = 'Name1then
          if Node.HasAttribute('value') then
            begin
              Name1 := Node.Attributes['value'];
              break;
            end;
      Node := Node.NextSibling;
    end;
  ShowMessage(Name1);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
verkouter

Registriert seit: 29. Dez 2004
64 Beiträge
 
Delphi 2010 Architect
 
#8

AW: Brauche Hilfe bei XML-Datei

  Alt 12. Jun 2016, 13:12
Danke, hat funktioniert.
Da wäre ich nie daraufgekommen.
Also ist "name) und "value" ein Attribut von "Config" ???
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

AW: Brauche Hilfe bei XML-Datei

  Alt 12. Jun 2016, 13:32
Richtig.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#10

AW: Brauche Hilfe bei XML-Datei

  Alt 13. Jun 2016, 11:26
Wenn Einem xmlDoc.DocumentElement.ChildNodes.FindNode('Config').ChildNodes['Name1'].Attributes['value'] zu umständlich ist, dann kann er/sie auch gern mit XPath arbeiten.
https://de.wikipedia.org/wiki/XPath
MS-XMLDOC kann das.

Da kann man auch ohne Schleifen und externe Bedingungen direkt im "String" Vieles besser einschränken,
so ala xmlDoc.DocumentElement.Nodes['Config[@name=Name1]\attribute::value'] , also im ROOT das "Config" mit dem Attribut "name", dessen Wert "Name1" ist, und davon da Attribut "value" auslesen/bearbeiten.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (13. Jun 2016 um 11:33 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz