Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML mit XML verbinden über XSL (https://www.delphipraxis.net/199874-xml-mit-xml-verbinden-ueber-xsl.html)

creehawk 27. Feb 2019 09:43

XML mit XML verbinden über XSL
 
Moin.

Mir ist die mentale Ventilation abhanden gekommen und somit die Denkfähigkeit.

Ich habe zwei XML Tabellen :

Code:
<Artikelliste>
 <Einzelartikel>
  <Artikelnummer>4711</Artikelnummer>
  <Artikelname>Parfum</Artikelname>
 </Einzelartikel>
 <Einzelartikel>   
  <Artikelnummer>9832</Artikelnummer>
  <Artikelname>Waschpulver</Artikelname>
 </Einzelartikel>      
 <Einzelartikel>         
  <Artikelnummer>3527</Artikelnummer>
  <Artikelname>Hundefutter</Artikelname>
 </Einzelartikel>            
 <Einzelartikel>            
  <Artikelnummer>4263</Artikelnummer>
  <Artikelname>Paprika</Artikelname>
 </Einzelartikel>      

           ..etc.pp.

 </Artikelliste>
Und die Zweite:

Code:
<Nummernliste>
  <Artikelnummer>3527</Artikelnummer>
  <Artikelnummer>4263</Artikelnummer>      
  <Artikelnummer>9832</Artikelnummer>      

           ..etc.pp.

</Nummernliste>
Und nun will ich mittels XSL über Delphi eine weitere XML erzeugen die aus der Artikelliste nur die Einzelartikel fischt die in der Nummernliste stehen.

Nur wie zum Donner sieht die XSL aus? Ich habe völlig den Faden verloren.


creehawk

creehawk 28. Feb 2019 07:05

AW: XML mit XML verbinden über XSL
 
Moin.

Problem gelöst. In die XSL Abfrage die die zweite XML erzeugt muss lediglich über ein DOM Objekt die Artikelliste selbst eingebunden werden:

Code:
<xsl:variable name="VarArtikelnummer" select="Artikelnummer"/>
            <xsl:for-each select="document('../XML/Artikel.xml')/Artikelliste                  
                          /Einzelartikel[Artikelnummer=$VarArtikelnummer]">
Manchmal hat man wirklich ein solch riesiges Brett vorm Kopf....

Andererseits: Kann man vielleicht auch anders lösen. Es gibt ja den aus anderen datenbanksprachen bekannten Begriff JOIN (InnerJoin, right/Left Join etc.) Aber da muss dann wohl auf XQuery wechseln.

Nehme ich mal an.

creehawk


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 Uhr.

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