Pytanie : Parse xml-segregować

Cześć,

I mieć Guzik, ListView i XMLDocument-składnik na mój form.
When I naciskać na the guzik ono używać the XMLDocument-składnik parse
the xml-segregować kapelusz precyzować w the procedura. Ono szukać dla the guzek który
begins z "BG" i pokaz od każdy guzek który zaczynać z BG the values
from Val, Dt i TM w the Listview kolumna Cenić, Data i Time.

This być każdy linia od the xml-segregować:






I stawiać the procedura w the kodować-section.

But I potrzebować parse ten dane od the xml-segregować zbyt i wystawiać the data
between the ("… ") ono w notatka:





Who znać the odpowiedź i być pomagać?

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:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
procedure TMainForm.btnGlucDataClick (Nadawca: TObject);
const
  FormatFrom: TFormatSettings = (DateSeparator: "-"; ShortDateFormat: "yyyy-mm-dd ");
  FormatTo: TFormatSettings = (DateSeparator: "-"; ShortDateFormat: "dd-mm-yyyy ");
  DoubleFormat: TFormatSettings = (DecimalSeparator: ".");
  Dzień: szyk [1..7] sznurek
    = ("Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota ");
var
  LoopNodes: IDOMNodeList;
  i: Integer;
  DateTime: TDateTime;
  Val: Rozszerzony;
  strVal, strValText: sznurek;
zaczynać
  XMLDoc.FileName: = ". \ G1839366.XML";
  XMLDoc.Active: = Prawdziwy;
  próba
    LoopNodes: = XMLDoc.DOMDocument.getElementsByTagName ("BG ");
    lstvGlucose.Items.BeginUpdate;
    próba
      lstvGlucose.Items.Clear;
      dla i: = (0) LoopNodes.length -1
        z lstvGlucose.Items.add
        zaczynać
          jeżeli TryStrToDate (LoopNodes [i] .attributes.getNamedItem ("Dt ").nodeValue, DateTime, FormatFrom) wtedy
          zaczynać
            Podpis: = Dzień [DayOfWeek (DayOfWeek)];
            SubItems.Add (DateToStr (DateTime, FormatTo));
          końcówka
          inny
          zaczynać
            Podpis: = "móc '' t konwertyta data";
            SubItems.Add (LoopNodes [i] .attributes.getNamedItem ("Dt ").nodeValue);
          końcówka;
          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: = '';
          jeżeli TryStrToFloat (strVal, Val, DoubleFormat) wtedy
            jeżeli Val < 4 wtedy
              strValText: = "HYPO"
            inny jeżeli Val > 10 wtedy
              strValText: = "HIPER-";
          SubItems.Add (strValText);
        końcówka;
    w końcu
      lstvGlucose.Items.EndUpdate;
    końcówka;
  w końcu
    XMLDoc.Active: = Fałszywy;
  końcówka;
końcówka;

Odpowiedź : Parse xml-segregować

Używać selectSingleNode i XPATH the pojedynczy guzek dla ich dane.

Tutaj być przykład:

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

i w ten sposób na…




Inne rozwiązania  
 
programming4us programming4us