2016-11-10 5 views
-2

私はDelphi 2010とTXMLDocumentを使用しています。私は最初PostavkeRacuna/Postavka/StevilkaVrsticeノードを読み取ることができますdelphi 2010はxmlノードを読み取れません

<?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を持っています。私は今、2番目のノードを読み取る方法はありません。私はGoogleの例を試しましたが、何も効果がありませんでした。同じ名前のノードで値を読み取る方法がわかりません。

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; 
+0

* PostavkeRacuna *という単語はあなたのコードには表示されないので、あなたは*最初のものをどのように読んでいるのかはわかりません。 –

答えて

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; 
+0

それは動作します、ありがとう – Matjaz

関連する問題