我正在使用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
答案 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;