Benutzer mit den meisten Antworten
FOR XML anpassen

Frage
-
Hallo,
ich habe zwei Tabellen, aus welchen ich zum Schluss eine XML Datei brauche. Ich habe folgendes probiert:
select cms_layouts.*, cms_containers.* from cms_layouts, cms_containers where cms_layouts.LayoutID=67 and cms_containers.LayoutID=cms_layouts.LayoutID for xml auto
Resultat:
<cms_layouts LayoutID="67" ParentID="63" LayoutName="OIS 1" LayoutArt="2" LayoutBgColor="#228783" LayoutBgImage="" LayoutSize="1" LayoutWidth="768" LayoutHeight="1360" LayoutType="10"> <cms_containers ContainerID="41" LayoutID="67" ContainerName="Bahnhof" ContainerOrder="0" ContainerTop="0" ContainerLeft="368" ContainerWidth="400" ContainerHeight="100" ContainerColor="#FFFF00" ContainerType="StaticText" /> <cms_containers ContainerID="42" LayoutID="67" ContainerName="Scrolltext" ContainerOrder="1" ContainerTop="1260" ContainerLeft="0" ContainerWidth="768" ContainerHeight="100" ContainerColor="#FFFF00" ContainerType="DynamicScrolltext" /> <cms_containers ContainerID="43" LayoutID="67" ContainerName="Bild" ContainerOrder="2" ContainerTop="110" ContainerLeft="10" ContainerWidth="748" ContainerHeight="500" ContainerColor="#FFFF00" ContainerType="DynamicImage" /> <cms_containers ContainerID="44" LayoutID="67" ContainerName="Text" ContainerOrder="3" ContainerTop="650" ContainerLeft="10" ContainerWidth="748" ContainerHeight="500" ContainerColor="#FFFF00" ContainerType="FreeText" /> </cms_layouts>
Ich benötige jedoch so eine Ausgabe:
<cms_layouts LayoutID="67" ParentID="63" LayoutName="OIS 1" LayoutArt="2" LayoutBgColor="#228783" LayoutBgImage="" LayoutSize="1" LayoutWidth="768" LayoutHeight="1360" LayoutType="10"> <cms_containers> <ContainerID>41</ContainerID> <LayoutID>67</LayoutID> <ContainerName>Bahnhof</ContainerName> <ContainerOrder>0</ContainerOrder> <ContainerTop>0</ContainerTop> <ContainerLeft>368</ContainerLeft> <ContainerWidth>400</ContainerWidth> <ContainerHeight>100</ContainerHeight> <ContainerColor>#FFFF00</ContainerColor> <ContainerType>StaticText</ContainerType> </cms_containers> <cms_containers> ... </cms_containers> </cms_layouts>
Bekomme ich so eine Ausgabe mit einer Abfrage hin? Wie könnte eine Lösung aussehen?
Gruss
Reiner
Antworten
-
Hi,
generell kannst Du zwischen der Generierung von Attributen (das, was Du jetzt erhältst) und Elementen (das, was Du in <cms_containers> haben willst, wählen. Siehe dazu:
http://msdn.microsoft.com/de-de/library/ms190922.aspx
Um das von dir gewünschte Ergebnis zu bekommen, könntest Du mit der PATH Angabe arbeiten. Damit sollte sich das angeben lassen.
http://msdn.microsoft.com/de-de/library/bb510462.aspx
Falls das doch nicht gehen sollte, wirst Du wahrscheinlich die Abfragen schachteln müssen. Siehe dazu:
http://msdn.microsoft.com/de-de/library/ms188276
Die äußere Abfrage arbeitet dann ohne Angabe von ELEMENTS, die innere entsprechend mit.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Christoph Muthmann Dienstag, 19. Juni 2012 06:07
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 20. Juni 2012 13:11
Alle Antworten
-
Hi,
generell kannst Du zwischen der Generierung von Attributen (das, was Du jetzt erhältst) und Elementen (das, was Du in <cms_containers> haben willst, wählen. Siehe dazu:
http://msdn.microsoft.com/de-de/library/ms190922.aspx
Um das von dir gewünschte Ergebnis zu bekommen, könntest Du mit der PATH Angabe arbeiten. Damit sollte sich das angeben lassen.
http://msdn.microsoft.com/de-de/library/bb510462.aspx
Falls das doch nicht gehen sollte, wirst Du wahrscheinlich die Abfragen schachteln müssen. Siehe dazu:
http://msdn.microsoft.com/de-de/library/ms188276
Die äußere Abfrage arbeitet dann ohne Angabe von ELEMENTS, die innere entsprechend mit.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Christoph Muthmann Dienstag, 19. Juni 2012 06:07
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 20. Juni 2012 13:11