delphi 2010无法读取xml节点

时间:2016-11-10 20:14:09

标签: xml delphi

我正在使用Delphi 2010和<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="http://www.xxxxx"?> <IzdaniRacunEnostavni xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.xxxxxxx"> <Racun Id="data"> <GlavaRacuna> <VrstaRacuna>380</VrstaRacuna> <StevilkaRacuna>420-16</StevilkaRacuna> <FunkcijaRacuna>9</FunkcijaRacuna> </GlavaRacuna> <Lokacije> <VrstaLokacije>91</VrstaLokacije> <NazivLokacije>Novo mesto</NazivLokacije> </Lokacije> <Valuta> <VrstaValuteRacuna>2</VrstaValuteRacuna> <KodaValute>EUR</KodaValute> </Valuta> <ReferencniDokumenti VrstaDokumenta="ON"> <StevilkaDokumenta>NI PODANO</StevilkaDokumenta> <DatumDokumenta>2016-06-03T00:00:00.000</DatumDokumenta> </ReferencniDokumenti> <ReferencniDokumenti VrstaDokumenta="AAK"> <StevilkaDokumenta>268,269/D</StevilkaDokumenta> <DatumDokumenta>2016-06-03T00:00:00.000</DatumDokumenta> </ReferencniDokumenti> <ReferencniDokumenti VrstaDokumenta="AAB"> <StevilkaDokumenta>NI PODANO</StevilkaDokumenta> <DatumDokumenta>2016-06-03T00:00:00.000</DatumDokumenta> </ReferencniDokumenti> <PodatkiPodjetja> <NazivNaslovPodjetja> <VrstaPartnerja>II</VrstaPartnerja> <IdentifikacijaPartnerja> <StevilkaPartnerja>9999</StevilkaPartnerja> <Agencija>91</Agencija> </IdentifikacijaPartnerja> <NazivPartnerja> <NazivPartnerja1>xxxxx</NazivPartnerja1> <NazivPartnerja2 /> <NazivPartnerja3 /> <NazivPartnerja4 /> </NazivPartnerja> <Ulica> <Ulica1>xxxxx</Ulica1> <Ulica2 /> <Ulica3 /> <Ulica4 /> </Ulica> <Kraj>xxxxx</Kraj> <NazivDrzave>Slovenija</NazivDrzave> <PostnaStevilka>8000</PostnaStevilka> <KodaDrzave>SI</KodaDrzave> </NazivNaslovPodjetja> <FinancniPodatkiPodjetja> <TipInstitucije>RB</TipInstitucije> <BancniRacun> <StevilkaBancnegaRacuna>xxxx</StevilkaBancnegaRacuna> <NazivBanke1>xxxx</NazivBanke1> <NazivBanke2 /> </BancniRacun> <KodaDrzaveBanke>SI</KodaDrzaveBanke> </FinancniPodatkiPodjetja> <FinancniPodatkiPodjetja> <TipInstitucije>RB</TipInstitucije> <BancniRacun> <StevilkaBancnegaRacuna>xxxx</StevilkaBancnegaRacuna> <NazivBanke1>xxxxx</NazivBanke1> <NazivBanke2 /> </BancniRacun> <KodaDrzaveBanke>SI</KodaDrzaveBanke> </FinancniPodatkiPodjetja> <ReferencniPodatkiPodjetja> <VrstaPodatkaPodjetja>VA</VrstaPodatkaPodjetja> <PodatekPodjetja>xxxx</PodatekPodjetja> </ReferencniPodatkiPodjetja> <ReferencniPodatkiPodjetja> <VrstaPodatkaPodjetja>GN</VrstaPodatkaPodjetja> <PodatekPodjetja>1358120</PodatekPodjetja> </ReferencniPodatkiPodjetja> <ReferencniPodatkiPodjetja> <VrstaPodatkaPodjetja>XA</VrstaPodatkaPodjetja> <PodatekPodjetja>1/04065/00</PodatekPodjetja> </ReferencniPodatkiPodjetja> <KontaktiPodjetja> <Komunikacije> <StevilkaKomunikacije>xxxxx</StevilkaKomunikacije> <VrstaKomunikacije>TE</VrstaKomunikacije> </Komunikacije> <Komunikacije> <StevilkaKomunikacije>xxxxx</StevilkaKomunikacije> <VrstaKomunikacije>FX</VrstaKomunikacije> </Komunikacije> <Komunikacije> <StevilkaKomunikacije /> <VrstaKomunikacije>EM</VrstaKomunikacije> </Komunikacije> </KontaktiPodjetja> </PodatkiPodjetja> <PodatkiPodjetja> <NazivNaslovPodjetja> <VrstaPartnerja>BY</VrstaPartnerja> <IdentifikacijaPartnerja> <StevilkaPartnerja>0549</StevilkaPartnerja> <Agencija>91</Agencija> </IdentifikacijaPartnerja> <NazivPartnerja> <NazivPartnerja1>xxxx</NazivPartnerja1> <NazivPartnerja2>xxxx</NazivPartnerja2> <NazivPartnerja3 /> <NazivPartnerja4 /> </NazivPartnerja> <Ulica> <Ulica1>xxxx</Ulica1> <Ulica2 /> <Ulica3 /> <Ulica4 /> </Ulica> <Kraj>xxx</Kraj> <NazivDrzave>Slovenija</NazivDrzave> <PostnaStevilka>8000</PostnaStevilka> <KodaDrzave>SI</KodaDrzave> </NazivNaslovPodjetja> <FinancniPodatkiPodjetja> <TipInstitucije>RB</TipInstitucije> <BancniRacun> <StevilkaBancnegaRacuna>xxxx</StevilkaBancnegaRacuna> <NazivBanke1 /> <NazivBanke2 /> </BancniRacun> <KodaDrzaveBanke>SI</KodaDrzaveBanke> </FinancniPodatkiPodjetja> <ReferencniPodatkiPodjetja> <VrstaPodatkaPodjetja>VA</VrstaPodatkaPodjetja> <PodatekPodjetja>xxxxx</PodatekPodjetja> </ReferencniPodatkiPodjetja> <ReferencniPodatkiPodjetja> <VrstaPodatkaPodjetja>GN</VrstaPodatkaPodjetja> <PodatekPodjetja>xxxx</PodatekPodjetja> </ReferencniPodatkiPodjetja> </PodatkiPodjetja> <PodatkiPodjetja> <NazivNaslovPodjetja> <VrstaPartnerja>IV</VrstaPartnerja> <IdentifikacijaPartnerja> <StevilkaPartnerja>0549</StevilkaPartnerja> <Agencija>91</Agencija> </IdentifikacijaPartnerja> <NazivPartnerja> <NazivPartnerja1>xxxx</NazivPartnerja1> <NazivPartnerja2>xxxx</NazivPartnerja2> <NazivPartnerja3 /> <NazivPartnerja4 /> </NazivPartnerja> <Ulica> <Ulica1>xxxx</Ulica1> <Ulica2 /> <Ulica3 /> <Ulica4 /> </Ulica> <Kraj>xxxx</Kraj> <NazivDrzave>Slovenija</NazivDrzave> <PostnaStevilka>8000</PostnaStevilka> <KodaDrzave>SI</KodaDrzave> </NazivNaslovPodjetja> <FinancniPodatkiPodjetja> <TipInstitucije>RB</TipInstitucije> <BancniRacun> <StevilkaBancnegaRacuna>xxxxx</StevilkaBancnegaRacuna> <NazivBanke1 /> <NazivBanke2 /> </BancniRacun> <KodaDrzaveBanke>SI</KodaDrzaveBanke> </FinancniPodatkiPodjetja> <ReferencniPodatkiPodjetja> <VrstaPodatkaPodjetja>VA</VrstaPodatkaPodjetja> <PodatekPodjetja>xxxxx</PodatekPodjetja> </ReferencniPodatkiPodjetja> <ReferencniPodatkiPodjetja> <VrstaPodatkaPodjetja>GN</VrstaPodatkaPodjetja> <PodatekPodjetja>5198984000</PodatekPodjetja> </ReferencniPodatkiPodjetja> <KontaktiPodjetja> <Komunikacije> <StevilkaKomunikacije>xxxxxx</StevilkaKomunikacije> <VrstaKomunikacije>TE</VrstaKomunikacije> </Komunikacije> <Komunikacije> <StevilkaKomunikacije /> <VrstaKomunikacije>FX</VrstaKomunikacije> </Komunikacije> <Komunikacije> <StevilkaKomunikacije /> <VrstaKomunikacije>EM</VrstaKomunikacije> </Komunikacije> </KontaktiPodjetja> </PodatkiPodjetja> <PostavkeRacuna> <Postavka> <StevilkaVrstice>1</StevilkaVrstice> </Postavka> <DodatnaIdentifikacijaArtikla> <VrstaPodatkaArtikla>5</VrstaPodatkaArtikla> <StevilkaArtiklaDodatna>0000</StevilkaArtiklaDodatna> <VrstaKodeArtiklaDodatna>SA</VrstaKodeArtiklaDodatna> </DodatnaIdentifikacijaArtikla> <OpisiArtiklov> <KodaOpisaArtikla>F</KodaOpisaArtikla> <OpisArtikla> <VrstaArtikla>SER</VrstaArtikla> <OpisArtikla1>Tisk blokcev "ŠMARJETA" zelen, 100-</OpisArtikla1> </OpisArtikla> </OpisiArtiklov> <KolicinaArtikla> <VrstaKolicine>47</VrstaKolicine> <Kolicina>2</Kolicina> <EnotaMere>PCE</EnotaMere> </KolicinaArtikla> <ZneskiPostavke> <VrstaZneskaPostavke>38</VrstaZneskaPostavke> <ZnesekPostavke>34.16</ZnesekPostavke> </ZneskiPostavke> <ZneskiPostavke> <VrstaZneskaPostavke>66</VrstaZneskaPostavke> <ZnesekPostavke>28</ZnesekPostavke> </ZneskiPostavke> <ZneskiPostavke> <VrstaZneskaPostavke>203</VrstaZneskaPostavke> <ZnesekPostavke>28</ZnesekPostavke> </ZneskiPostavke> <CenaPostavke> <VrstaCene>AAA</VrstaCene> <Cena>14</Cena> </CenaPostavke> <CenaPostavke> <VrstaCene>AAB</VrstaCene> <Cena>14</Cena> </CenaPostavke> <ReferencniDokumentiPostavke> <VrstaDokumentaPostavke>ON</VrstaDokumentaPostavke> <StevilkaDokumentaPostavke /> </ReferencniDokumentiPostavke> <ReferencniDokumentiPostavke> <VrstaDokumentaPostavke>AAK</VrstaDokumentaPostavke> <StevilkaDokumentaPostavke>268,269/D:1</StevilkaDokumentaPostavke> </ReferencniDokumentiPostavke> <ReferencniDokumentiPostavke> <VrstaDokumentaPostavke>AAB</VrstaDokumentaPostavke> <StevilkaDokumentaPostavke /> </ReferencniDokumentiPostavke> <DavkiPostavke> <DavkiNaPostavki> <VrstaDavkaPostavke>VAT</VrstaDavkaPostavke> <OdstotekDavkaPostavke>22</OdstotekDavkaPostavke> </DavkiNaPostavki> <ZneskiDavkovPostavke> <VrstaZneskaDavkaPostavke>124</VrstaZneskaDavkaPostavke> <Znesek>6.16</Znesek> </ZneskiDavkovPostavke> <ZneskiDavkovPostavke> <VrstaZneskaDavkaPostavke>125</VrstaZneskaDavkaPostavke> <Znesek>28</Znesek> </ZneskiDavkovPostavke> </DavkiPostavke> <OdstotkiPostavk> <Identifikator>A</Identifikator> <VrstaOdstotkaPostavke>1</VrstaOdstotkaPostavke> <OdstotekPostavke>0</OdstotekPostavke> <VrstaZneskaOdstotka>204</VrstaZneskaOdstotka> <ZnesekOdstotka>0</ZnesekOdstotka> </OdstotkiPostavk> </PostavkeRacuna> <PostavkeRacuna> <Postavka> <StevilkaVrstice>2</StevilkaVrstice> </Postavka> <DodatnaIdentifikacijaArtikla> <VrstaPodatkaArtikla>5</VrstaPodatkaArtikla> <StevilkaArtiklaDodatna>0000</StevilkaArtiklaDodatna> <VrstaKodeArtiklaDodatna>SA</VrstaKodeArtiklaDodatna> </DodatnaIdentifikacijaArtikla> <OpisiArtiklov> <KodaOpisaArtikla>F</KodaOpisaArtikla> <OpisArtikla> <VrstaArtikla>SER</VrstaArtikla> <OpisArtikla1>Samolepilne etikete (različne)</OpisArtikla1> </OpisArtikla> </OpisiArtiklov> <KolicinaArtikla> <VrstaKolicine>47</VrstaKolicine> <Kolicina>2600</Kolicina> <EnotaMere>PCE</EnotaMere> </KolicinaArtikla> <ZneskiPostavke> <VrstaZneskaPostavke>38</VrstaZneskaPostavke> <ZnesekPostavke>168.12</ZnesekPostavke> </ZneskiPostavke> <ZneskiPostavke> <VrstaZneskaPostavke>66</VrstaZneskaPostavke> <ZnesekPostavke>137.8</ZnesekPostavke> </ZneskiPostavke> <ZneskiPostavke> <VrstaZneskaPostavke>203</VrstaZneskaPostavke> <ZnesekPostavke>137.8</ZnesekPostavke> </ZneskiPostavke> <CenaPostavke> <VrstaCene>AAA</VrstaCene> <Cena>0.053</Cena> </CenaPostavke> <CenaPostavke> <VrstaCene>AAB</VrstaCene> <Cena>0.053</Cena> </CenaPostavke> <ReferencniDokumentiPostavke> <VrstaDokumentaPostavke>ON</VrstaDokumentaPostavke> <StevilkaDokumentaPostavke /> </ReferencniDokumentiPostavke> <ReferencniDokumentiPostavke> <VrstaDokumentaPostavke>AAK</VrstaDokumentaPostavke> <StevilkaDokumentaPostavke>268,269/D:2</StevilkaDokumentaPostavke> </ReferencniDokumentiPostavke> <ReferencniDokumentiPostavke> <VrstaDokumentaPostavke>AAB</VrstaDokumentaPostavke> <StevilkaDokumentaPostavke /> </ReferencniDokumentiPostavke> <DavkiPostavke> <DavkiNaPostavki> <VrstaDavkaPostavke>VAT</VrstaDavkaPostavke> <OdstotekDavkaPostavke>22</OdstotekDavkaPostavke> </DavkiNaPostavki> <ZneskiDavkovPostavke> <VrstaZneskaDavkaPostavke>124</VrstaZneskaDavkaPostavke> <Znesek>30.32</Znesek> </ZneskiDavkovPostavke> <ZneskiDavkovPostavke> <VrstaZneskaDavkaPostavke>125</VrstaZneskaDavkaPostavke> <Znesek>137.8</Znesek> </ZneskiDavkovPostavke> </DavkiPostavke> <OdstotkiPostavk> <Identifikator>A</Identifikator> <VrstaOdstotkaPostavke>1</VrstaOdstotkaPostavke> <OdstotekPostavke>0</OdstotekPostavke> <VrstaZneskaOdstotka>204</VrstaZneskaOdstotka> <ZnesekOdstotka>0</ZnesekOdstotka> </OdstotkiPostavk> </PostavkeRacuna> <PovzetekDavkovRacuna> <DavkiRacuna> <VrstaDavka>VAT</VrstaDavka> <OdstotekDavka>22</OdstotekDavka> </DavkiRacuna> <ZneskiDavkov> <VrstaZneskaDavka>125</VrstaZneskaDavka> <ZnesekDavka>165.8</ZnesekDavka> </ZneskiDavkov> <ZneskiDavkov> <VrstaZneskaDavka>124</VrstaZneskaDavka> <ZnesekDavka>36.48</ZnesekDavka> </ZneskiDavkov> </PovzetekDavkovRacuna> <PovzetekZneskovRacuna> <ZneskiRacuna> <VrstaZneska>9</VrstaZneska> <ZnesekRacuna>202.28</ZnesekRacuna> </ZneskiRacuna> <SklicZaPlacilo> <SklicPlacila>PQ</SklicPlacila> <StevilkaSklica>SI010050409-0042016-13</StevilkaSklica> </SklicZaPlacilo> </PovzetekZneskovRacuna> </Racun> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <ds:Reference URI=""> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <ds:DigestValue>nuggBC3o7Pd86Rn9rxAXiTXQHVs=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>xkGtC</ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>MII</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> </IzdaniRacunEnostavni> 。我有这样的XML:

PostavkeRacuna/Postavka/StevilkaVrstice

我只能读取第一个form155.XMLDocument1.LoadFromFile(edit1.Text); DOC := form155.XMLDocument1; for x := 0 to DOC.ChildNodes.Nodes['IzdaniRacunEnostavni'].ChildNodes.Count - 1 do begin RacunChilds := DOC.ChildNodes.Nodes['IzdaniRacunEnostavni'].ChildNodes[x]; if RacunChilds.NodeName = 'Racun' then begin form2.racuni_izdani1.Append; form2.racuni_izdani1ZAP_STEVILKA.Value := zaporedna_stevilka + 1; GlavaRacuna_Node := RacunChilds.ChildNodes.Nodes['GlavaRacuna']; form2.racuni_izdani1ST_RACUNA.Value := GlavaRacuna_Node.ChildNodes.Nodes['StevilkaRacuna'].NodeValue; DatumiRacuna_node := RacunChilds.ChildNodes.Nodes['DatumiRacuna']; datums := DatumiRacuna_Node.ChildNodes.Nodes['DatumRacuna'].NodeValue; letoS := copy(datumS,1,4); mesecS := copy(datumS,6,2); danS := copy(datumS,9,2); datumskupaj := danS + '.'+ mesecS + '.' + letoS; form2.racuni_izdani1DATUM_RACUNA.Value := strtodate(datumskupaj); PlacilniPogoji_node := RacunChilds.ChildNodes.Nodes['PlacilniPogoji']; PlacilniRoki_node := PlacilniPogoji_node.ChildNodes.Nodes['PlacilniRoki']; datums := PlacilniRoki_node.ChildNodes.Nodes['Datum'].NodeValue; letoS := copy(datumS,1,4); mesecS := copy(datumS,6,2); danS := copy(datumS,9,2); datumskupaj := danS + '.'+ mesecS + '.' + letoS; form2.racuni_izdani1DATUM_VALUTE.Value := strtodate(datumskupaj); ReferencniDokumenti_Node := RacunChilds.ChildNodes.Nodes[11]; form2.racuni_izdani1ST_DOBAVNICE.Value := ReferencniDokumenti_Node.ChildNodes.Nodes['StevilkaDokumenta'].NodeValue; datums := ReferencniDokumenti_Node.ChildNodes.Nodes['DatumDokumenta'].NodeValue; letoS := copy(datumS,1,4); mesecS := copy(datumS,6,2); danS := copy(datumS,9,2); datumskupaj := danS + '.'+ mesecS + '.' + letoS; form2.racuni_izdani1DATUM_DOBAVNICE.Value := strtodate(datumskupaj); PodatkiPodjetja_node := RacunChilds.ChildNodes.Nodes[14]; NazivNaslovPodjetja_node := PodatkiPodjetja_node.ChildNodes.Nodes['NazivNaslovPodjetja']; NazivPartnerja_node := NazivNaslovPodjetja_node.ChildNodes.Nodes['NazivPartnerja']; form2.racuni_izdani1NAZIV_PARTNERJA.Value := NazivPartnerja_node.ChildNodes.Nodes['NazivPartnerja1'].NodeValue; PovzetekDavkovRacuna_node := RacunChilds.ChildNodes.Nodes['PovzetekDavkovRacuna']; ZneskiDavkov_node := PovzetekDavkovRacuna_node.ChildNodes.Nodes['ZneskiDavkov']; form2.racuni_izdani1SKUPAJ_BREZ_DDV.Value := ZneskiDavkov_node.ChildNodes.Nodes['ZnesekDavka'].NodeValue; PovzetekDavkovRacuna_node := RacunChilds.ChildNodes.Nodes['PovzetekDavkovRacuna']; ZneskiDavkov_node := PovzetekDavkovRacuna_node.ChildNodes.Nodes[2]; form2.racuni_izdani1ZNESEK_DDV.Value := ZneskiDavkov_node.ChildNodes.Nodes['ZnesekDavka'].NodeValue; PovzetekZneskovRacuna_node := RacunChilds.ChildNodes.Nodes['PovzetekZneskovRacuna']; ZneskiRacuna_node := PovzetekZneskovRacuna_node.ChildNodes.Nodes['ZneskiRacuna']; form2.racuni_izdani1SKUPAJ_Z_DDV.Value := ZneskiRacuna_node.ChildNodes.Nodes['ZnesekRacuna'].NodeValue; end; end; 节点。我现在不知道如何读取第二个节点。我试过谷歌的例子,但没有任何效果。我不知道如何读取具有相同名称的节点中的值。

我正在使用此代码:

def pentaSquares():
    l = []
    n = 0
    squares = lambda x: [x*x for x in  range(n)]
    penta = lambda y: [y*(3*y-1)//2 for y in range(n)]
    while l.index < 4:
        l = [i for i in squares for j in penta if squares == penta]
        n = n+1
    return l

1 个答案:

答案 0 :(得分:1)

在处理同名的兄弟节点时,ChildNodes.Nodes[]属性只能找到第一个匹配的节点。 IXMLNode没有任何功能可以找到同名的下一个兄弟。因此,您必须手动遍历父节点的子节点,查看每个节点的名称,例如:

form155.XMLDocument1.LoadFromFile(edit1.Text);
DOC := form155.XMLDocument1;

RacunChilds := DOC.ChildNodes['IzdaniRacunEnostavni'].ChildNodes['Racun'];
...
for I := 0 to RacunChilds.ChildNodes.Count-1 do
begin
  Child := RacunChilds.ChildNodes[I];
  if Child.LocalName = 'PostavkeRacuna' then
  begin
    // use Child.ChildNodes['Postavka'].ChildNodes['StevilkaVrstice'] as needed...
  end;
end;

可替换地:

function FindSameNameSibling(Node: IXMLNode): IXMLNode;
var
  I: Integer;
  Nodes: IXMLNodeList;
  Sibling: IXMLNode;
begin
  Result := nil;
  if Node = nil then Exit;
  Nodes := Node.ParentNode.ChildNodes;
  for I := Nodes.IndexOf(Node)+1 to Nodes.Count-1 do
  begin
    Sibling := Nodes[I];
    if (Sibling.NamespaceURI = Node.NamespaceURI) and
       (Sibling.LocalName = Node.LocalName) then
    begin
      Result := Sibling;
      Exit;
    end;
  end;
end;

...

form155.XMLDocument1.LoadFromFile(edit1.Text);
DOC := form155.XMLDocument1;

RacunChilds := DOC.ChildNodes['IzdaniRacunEnostavni'].ChildNodes['Racun'];
...
Child := RacunChilds.ChildNodes['PostavkeRacuna'];
while Child <> nil do
begin
  // use Child.ChildNodes['Postavka'].ChildNodes['StevilkaVrstice'] as needed...
  Child := FindSameNameSibling(Child);
end;

或者,如果底层XML DOM引擎支持XPath,则使用XPath查询,例如:

uses
  ..., Xml.XmlDom;

var
  query: IDOMNodeSelect;
  nodes: IDOMNodeList;

...

form155.XMLDocument1.LoadFromFile(edit1.Text);
DOC := form155.XMLDocument1;

RacunChilds := DOC.ChildNodes['IzdaniRacunEnostavni'].ChildNodes['Racun'];
...

if Supports(RacunChilds.DOMNode, IDOMNodeSelect, query) then
begin
  nodes := query.selectNodes('PostavkeRacuna/Postavka/StevilkaVrstice');
  if nodes <> nil then
  begin
    for I := 0 to nodes.length-1 do
    begin
      // use nodes[I] as needed...
    end;
  end;
end else
begin
  // code further above ...
end;