Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Gleiche Unterkonten auslesen (https://www.delphipraxis.net/69436-gleiche-unterkonten-auslesen.html)

Luckie 15. Mai 2006 09:42


Gleiche Unterkonten auslesen
 
Ich habe folgendes XML Dokument:
XML-Code:
<importkennungen>

  <zeitraum jahr="2007">
    <doktyp kennung="11A11">
      <ziel>(#BUNG07)\Firma2\Lieferschein</ziel>
      <aliasliste>
        <alias>BELEMMER025=1033</alias>
        <alias>AULIEMER042=1021</alias>
        <alias>GESCEICH026=1034</alias>
        <alias>UNTEEICH027=1035</alias>
        <alias>LIEFMMER029=1037</alias>
        <alias>KUNDMMER032=1040</alias>
        <alias>KUNDNUNG033=1041</alias>
        <alias>KUNDNUNG035=1042</alias>
        <alias>PLZKUNDE036=1043</alias>
        <alias>ORTKUNDE037=1044</alias>
        <alias>MATCUNDE038=1045</alias>
        <alias>BELEATUM039=1046</alias>
      </aliasliste>
    </doktyp>
Jetzt wollte ich gerne alles Aliase in eine StringListe laden:

Delphi-Quellcode:
  s := Format('/importkennungen/zeitraum[@jahr="%s"]/doktyp[@kennung="%s"]/aliasliste', [year, doctype]);
  XMLDomList := XMLDoc.selectNodes(s); // var XMLDomList       : IXMLDOMNodeList;

  ValueList := TStringList.Create;
  try
    for i := 0 to XMLDomList.length - 1 do
    begin
      s := XMLDomList.item[i].nodeValue;
      ValueList.Add(s)
    end;
Ich dachte jetzt eigentlich, dass ich alle <alias>-Knoten ind er XMLDomList hätte und ich die eibfach in einer Schleife durchgehen könnte. Dem scheint aber nicht so zu sein, da sie nur die Länge von eins hat, was nicht sein kann. Wo liegt also der Fehler?

Ich habe es jetzt so:
Delphi-Quellcode:
  s := Format('/importkennungen/zeitraum[@jahr="%s"]/doktyp[@kennung="%s"]/aliasliste', [year, doctype]);
  XMLDomList := XMLDoc.selectNodes(s);

  ValueList := TStringList.Create;
  try
    for i := 0 to XMLDomList.length - 1 do
    begin
      XMLNode := XMLDomList.item[i].selectSingleNode('alias');
      ValueList.Add(XMLNode.text);
    end;
Aber ich bekomme trotzdem immer nur den ersten Alias. :gruebel:

Luckie 15. Mai 2006 10:33

Re: Gleiche Unterkonten auslesen
 
So habs:
Delphi-Quellcode:
  s := Format('/importkennungen/zeitraum[@jahr="%s"]/doktyp[@kennung="%s"]/aliasliste/*', [year, doctype]);
  XMLDomList := XMLDoc.documentElement.selectNodes(s);

  ValueList := TStringList.Create;
  try
    for i := 0 to XMLDomList.length - 1 do
    begin
      XMLNode := XMLDomList.item[i];
      ValueList.Add(XMLNode.text);
    end;
Das Sternchen hat gefehlt. :roll:

la.reunion 9. Jul 2006 22:14

Re: Gleiche Unterkonten auslesen
 
WIe kann cih das etwa gleiche machen mit diesem xml doklument?

Ja es geht mir NUR um den QUelltext kannst du mir ein beispiel zu den indys nenen wie cih das anstellen kann?

XML-Code:
- <SmallImage>
  <URL>http://images.amazon.com/images/P/B00006L71B.03._SCTHUMBZZZ_.jpg</URL>
  <Height Units="pixels">74</Height>
  <Width Units="pixels">75</Width>
  </SmallImage>
- <MediumImage>
  <URL>http://images.amazon.com/images/P/B00006L71B.03._SCMZZZZZZZ_.jpg</URL>
  <Height Units="pixels">159</Height>
  <Width Units="pixels">160</Width>
  </MediumImage>
- <LargeImage>
  <URL>http://images.amazon.com/images/P/B00006L71B.03._SCLZZZZZZZ_.jpg</URL>
  <Height Units="pixels">298</Height>
  <Width Units="pixels">300</Width>
  </LargeImage>
- <ImageSets>
- <ImageSet Category="primary">
- <SmallImage>
  <URL>http://images.amazon.com/images/P/B00006L71B.03._SCTHUMBZZZ_.jpg</URL>
  <Height Units="pixels">74</Height>
  <Width Units="pixels">75</Width>
  </SmallImage>
- <MediumImage>
  <URL>http://images.amazon.com/images/P/B00006L71B.03._SCMZZZZZZZ_.jpg</URL>
  <Height Units="pixels">159</Height>
  <Width Units="pixels">160</Width>
  </MediumImage>
- <LargeImage>
  <URL>http://images.amazon.com/images/P/B00006L71B.03._SCLZZZZZZZ_.jpg</URL>
  <Height Units="pixels">298</Height>
  <Width Units="pixels">300</Width>
  </LargeImage>
  </ImageSet>
Danke

[edit=Luckie]Tag gefixt. Mfg, Luckie[/edit]

Luckie 9. Jul 2006 22:18

Re: Gleiche Unterkonten auslesen
 
Was willst du denn auslesen und was haben die Indys mit dem Auslesen zu tun?

la.reunion 10. Jul 2006 11:47

Re: Gleiche Unterkonten auslesen
 
ich will die Links bei Large Image auslesen also zum Beispiel

http://images.amazon.com/images/P/B0...CLZZZZZZZ_.jpg

und ich weiß nicht wie ich das machen kann.

Vlt kannst du mir helfen

Jelly 10. Jul 2006 18:16

Re: Gleiche Unterkonten auslesen
 
@La.Reunion: Ich darf Dich bitten deine Problematik in deinem Thread weiterzuführen, und nicht auch noch hier damit anzufangen.

Guts2 23. Aug 2006 08:26

Re: Gleiche Unterkonten auslesen
 
@ Luckie

Kannst du mir bitte mal erklären was dieser befehl macht?? Hab ein ähnliches Problem aber weiß nicht wie ich es lösen kann

Delphi-Quellcode:
s := Format('/importkennungen/zeitraum[@jahr="%s"]/doktyp[@kennung="%s"]/aliasliste/*', [year, doctype]);
Danke für die Hilfe

Luckie 23. Aug 2006 10:22

Re: Gleiche Unterkonten auslesen
 
Damit baue ich mir den XPath zusammen. Die Variablen year und doctype werden in die Platzhalter eingesetzt.

Guts2 23. Aug 2006 10:59

Re: Gleiche Unterkonten auslesen
 
Ok, danke, das hilft mir dann zumindest ein bischen weiter :coder2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz