Frage : Xmlakte analysieren

Hallo, haben

I einen Knopf, ein ListView und ein XMLDocument-Bestandteil auf meinem form.
When, das ich auf den Knopf bedränge, es den XMLDocument-Bestandteil zum parse
the Xmlakte Hut wird spezifiziert im Verfahren benutzt. Es sucht nach den Nullpunkten, die
begins mit „BG“ und von jedem Nullpunkt, der mit BG das values
from Val, Papierlösekorotron und TM in den Listview Spalten Wert anfängt, Datum anzeigt und Time.

This einige Linien von der Xmlakte ist:






I haben das Verfahren in den Codeabschnitt eingesetzt.

But, das ich diese Daten von der Xmlakte auch analysieren und das data
between anzeigen muss (“… ") es in einem Protokoll:




Who kennt die Antwort und ist bereit, mir zu helfen?

Peter Kiers


1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
procedure TMainForm.btnGlucDataClick (Absender: TObject);
const
  FormatFrom: TFormatSettings = (DateSeparator: „-“; ShortDateFormat: „Yyyy-MillimeterdD ");
  FormatTo: TFormatSettings = (DateSeparator: „-“; ShortDateFormat: „DDmillimeter-yyyy ");
  DoubleFormat: TFormatSettings = (DecimalSeparator: „.");
  Tage: Reihe [1..7] Schnur
    = („Sonntag“, „Montag“, „Dienstag“, „Mittwoch“, „Donnerstag“, „Freitag“, „Samstag ");
var
  LoopNodes: IDOMNodeList;
  I: Ganze Zahl;
  Datum/Uhrzeit: TDateTime;
  Val: Ausgedehnt;
  strVal, strValText: Schnur;
anfangen
  XMLDoc.FileName: = „. \ G1839366.XML“;
  XMLDoc.Active: = ausrichten;
  Versuch
    LoopNodes: = XMLDoc.DOMDocument.getElementsByTagName („BG ");
    lstvGlucose.Items.BeginUpdate;
    Versuch
      lstvGlucose.Items.Clear;
      für i: = tun 0 zu LoopNodes.length -1
        mit lstvGlucose.Items.add tun
        anfangen
          wenn TryStrToDate (LoopNodes [i] .attributes.getNamedItem („Papierlösekorotron ").nodeValue, Datum/Uhrzeit, FormatFrom) dann
          anfangen
            Untertitel: = Tage [DayOfWeek (Datum/Uhrzeit)];
            SubItems.Add (DateToStr (Datum/Uhrzeit, FormatTo));
          Ende
          sonst
          anfangen
            Untertitel: = „kann '' t-Bekehrtdatum“;
            SubItems.Add (LoopNodes [i] .attributes.getNamedItem („Papierlösekorotron ").nodeValue);
          Ende;
          SubItems.Add (LoopNodes [i] .attributes.getNamedItem („TM ").nodeValue);
          SubItems.Add (LoopNodes [i] .attributes.getNamedItem („Val ").nodeValue);
          strVal: = StringReplace (LoopNodes [i] .attributes.getNamedItem („Val ").NodeValue, „,“, „. “, []);
          strValText: = '';
          wenn TryStrToFloat (strVal, Val, DoubleFormat) dann
            wenn Val < 4 dann
              strValText: = „HYPO“
            sonst wenn Val > 10 dann
              strValText: = „HYPER“;
          SubItems.Add (strValText);
        Ende;
    schließlich
      lstvGlucose.Items.EndUpdate;
    Ende;
  schließlich
    XMLDoc.Active: = falsch;
  Ende;
Ende;

Antwort : Xmlakte analysieren

selectSingleNode und XPATH verwenden, um die einzelnen Nullpunkte für ihre Daten vorzuwählen.

Ist hier ein Beispiel:

ACSPIXNode: = XMLDoc.DOMDocument.selectSingleNode („//ACSPIX ");
ACSPIXType: = ACSPIXNode.attributes.getNamedItem („Art ").nodeValue;

und so weiter…




Weitere Lösungen  
 
programming4us programming4us