Vraag : Ontleed xml-dossier

Hallo, heeft

I een Knoop, een ListView en een xMLDocument-Component op mijn form.
When die ik op de knoop heb gedrukt het de xMLDocument-Component aan parse
the xml--dossierhoed wordt gespecificeerd in de procedure gebruikt. Het zoekt naar de knopen dat
begins met „BG“ en de vertoningen van elke knoop die met BG met values
from Val, Dt en TM in de Listview kolommenWaarde beginnen, Datum en Time.

This een paar lijnen van het xml-dossier zijn:






I heeft de procedure in de code-sectie gezet. behoefte

But I om dit gegeven van het xml-dossier ook te ontleden en data
between te tonen (“… „) het in een memorandum:




Who kent het antwoord en is bereid om me te helpen?

Peter Kiers


" codeBody "
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:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
procedure TMainForm.btnGlucDataClick (Afzender: TObject);
const
  FormatFrom: TFormatSettings = (DateSeparator: „-“; ShortDateFormat: „yyyy-mm-dd“);
  FormatTo: TFormatSettings = (DateSeparator: „-“; ShortDateFormat: „dd-mm-yyyy“);
  DoubleFormat: TFormatSettings = (DecimalSeparator: „. “);
  Dagen: serie [1..7] van koord
    = („Zondag“, „Maandag“, „Dinsdag“, „Woensdag“, „Donderdag“, „Vrijdag“, „Zaterdag“);
var
  LoopNodes: IDOMNodeList;
  i: Geheel;
  DateTime: TDateTime;
  Val: Uitgebreid;
  strVal, strValText: koord;
begin
  XMLDoc.FileName: = „. \ G1839366.XML“;
  XMLDoc.Active: = Waar;
  probeer
    LoopNodes: = XMLDoc.DOMDocument.getElementsByTagName („BG“);
    lstvGlucose.Items.BeginUpdate;
    probeer
      lstvGlucose.Items.Clear;
      voor I: = 0 aan LoopNodes.length -1
        met lstvGlucose.Items.add 
        begin
          als TryStrToDate (LoopNodes [I] .attributes.getNamedItem („Dt“) .nodeValue, DateTime, FormatFrom) toen
          begin
            Titel: = Dagen [DayOfWeek (DateTime)];
            SubItems.Add (DateToStr (DateTime, FormatTo));
          eind
          anders
          begin
            Titel: = „kan '' t datum“ omzetten;
            SubItems.Add (LoopNodes [I] .attributes.getNamedItem („Dt“) .nodeValue);
          eind;
          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: = '';
          als strVal TryStrToFloat (, Val, DoubleFormat) toen
            als Val < 4 toen
              strValText: = „HYPO“
            als anders Val > 10 toen
              strValText: = „HYPER“;
          SubItems.Add (strValText);
        eind;
    tot slot
      lstvGlucose.Items.EndUpdate;
    eind;
  tot slot
    XMLDoc.Active: = Vals;
  eind;
eind;

Antwoord : Ontleed xml-dossier

Gebruik selectSingleNode en XPATH om de enige knopen voor hun gegevens te selecteren.

Hier is een voorbeeld:

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

etc.…




Andere oplossingen  
 
programming4us programming4us