There are just few simple steps:
- Create a List
- Open SharePoint Designer 2007 and open a blank .aspx page.
- Delete all the code generated in .aspx page
- In the Task pane open the Data Source Library and click Show Data
- Select the Title field and than click Insert Selected Fields as … Multiple Item View
- In Change Layout select Plain List of Titles.
- Add XML declaration: <?xml version=”1.0″ encoding=”utf-8″ ?>
- Remove all HTML tags
- After <WebPartPages:DataFormWebPart runat=”server” add additional property SuppressWebPartChrome=”True” wich will prevent the chrome being displayed. In short: now <table> tags around the web part.
- Go to the <xsl:template section and replace the <p> tags with: <xsl:text disable-output-escaping=”yes”><Root></xsl:text> … – this will be the first node of the XML file. You will also need to end this tag.
- do the same for all other child nodes you want to display.
List in SharePoint:
XML Output:
The blank.aspx code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <?xml version="1.0" encoding="utf-8" ?> <%@ Page language="C#" inherits="Microsoft.SharePoint.WebPartPages.WebPartPage, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register tagprefix="WebPartPages" namespace="Microsoft.SharePoint.WebPartPages" assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register tagprefix="SharePoint" namespace="Microsoft.SharePoint.WebControls" assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <WebPartPages:DataFormWebPart runat="server" SuppressWebPartChrome="True" IsIncluded="True" FrameType="None" NoDefaultStyle="TRUE" ViewFlag="0" Title="ListToBeXML" ListName="{98BDF941-3262-4E4E-8BC7-28D15E66393D}" Default="FALSE" DisplayName="ListToBeXML" __markuptype="vsattributemarkup" __WebPartId="{78236CF0-21FA-4FF6-AF4A-9DC1B935B435}" id="g_78236cf0_21fa_4ff6_af4a_9dc1b935b435" __AllowXSLTEditing="true" WebPart="true" Height="" Width=""> <DataSources> <SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true" selectcommand="<View></View>" id="ListToBeXML1"><SelectParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{98BDF941-3262-4E4E-8BC7-28D15E66393D}"/></SelectParameters><DeleteParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{98BDF941-3262-4E4E-8BC7-28D15E66393D}"/></DeleteParameters><UpdateParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{98BDF941-3262-4E4E-8BC7-28D15E66393D}"/></UpdateParameters><InsertParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{98BDF941-3262-4E4E-8BC7-28D15E66393D}"/></InsertParameters></SharePoint:SPDataSource> </DataSources> <ParameterBindings> <ParameterBinding Name="ListID" Location="None" DefaultValue="{98BDF941-3262-4E4E-8BC7-28D15E66393D}"/> <ParameterBinding Name="dvt_apos" Location="Postback;Connection"/> <ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/> <ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/> </ParameterBindings> <datafields>@Title,Title;@Book,Book;@Writer,Writer;@Year,Year;@ID,ID;@ContentType,Content Type;@Modified,Modified;@Created,Created;@Author,Created By;@Editor,Modified By;@_UIVersionString,Version;@Attachments,Attachments;@File_x0020_Type,File Type;@FileLeafRef,Name (for use in forms);@FileDirRef,Path;@FSObjType,Item Type;@_HasCopyDestinations,Has Copy Destinations;@_CopySource,Copy Source;@ContentTypeId,Content Type ID;@_ModerationStatus,Approval Status;@_UIVersion,UI Version;@Created_x0020_Date,Created;@FileRef,URL Path;</datafields> <XSL> <xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal"> <xsl:output method="html" indent="no"/> <xsl:decimal-format NaN=""/> <xsl:param name="dvt_apos">'</xsl:param> <xsl:variable name="dvt_1_automode">0</xsl:variable> <xsl:template match="/" xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:SharePoint="Microsoft.SharePoint.WebControls"> <xsl:call-template name="dvt_1"/> </xsl:template> <xsl:template name="dvt_1"> <xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" /> <xsl:text disable-output-escaping="yes"><Root></xsl:text> <xsl:call-template name="dvt_1.body"> <xsl:with-param name="Rows" select="$Rows" /> </xsl:call-template> <xsl:text disable-output-escaping="yes"></Root></xsl:text> </xsl:template> <xsl:template name="dvt_1.body"> <xsl:param name="Rows" /> <xsl:for-each select="$Rows"> <xsl:call-template name="dvt_1.rowview" /> </xsl:for-each> </xsl:template> <xsl:template name="dvt_1.rowview"> <xsl:text disable-output-escaping="yes"><item id="</xsl:text><xsl:value-of select="@ID" /><xsl:text disable-output-escaping="yes">"></xsl:text> <xsl:text disable-output-escaping="yes"><book></xsl:text><xsl:value-of select="@Book" /><xsl:text disable-output-escaping="yes"></book></xsl:text> <xsl:text disable-output-escaping="yes"><writer></xsl:text><xsl:value-of select="@Writer" /><xsl:text disable-output-escaping="yes"></writer></xsl:text> <xsl:text disable-output-escaping="yes"></item></xsl:text> </xsl:template> </xsl:stylesheet> </XSL> </WebPartPages:DataFormWebPart> |
If you want to have more universal WebPart so you cold reuse it when saving the site as template you just have to find and replace 2 things:
- Find the guid (in my case: {98BDF941-3262-4E4E-8BC7-28D15E66393D}) and replace all it with name of your list (in my case ListToBeXML)
Task 1: {98BDF941-3262-4E4E-8BC7-28D15E66393D} -> ListToBeXML - Find ListID and replaceall it with ListName
Task 2: ListID -> ListName
By searching and replacing we will get:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <?xml version="1.0" encoding="utf-8" ?> <%@ Page language="C#" inherits="Microsoft.SharePoint.WebPartPages.WebPartPage, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register tagprefix="WebPartPages" namespace="Microsoft.SharePoint.WebPartPages" assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register tagprefix="SharePoint" namespace="Microsoft.SharePoint.WebControls" assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <WebPartPages:DataFormWebPart runat="server" SuppressWebPartChrome="True" IsIncluded="True" FrameType="None" NoDefaultStyle="TRUE" ViewFlag="0" Title="ListToBeXML" ListName="ListToBeXML" Default="FALSE" DisplayName="ListToBeXML" __markuptype="vsattributemarkup" __WebPartId="{78236CF0-21FA-4FF6-AF4A-9DC1B935B435}" id="g_78236cf0_21fa_4ff6_af4a_9dc1b935b435" __AllowXSLTEditing="true" WebPart="true" Height="" Width=""> <DataSources> <SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true" selectcommand="<View></View>" id="ListToBeXML1"><SelectParameters><WebPartPages:DataFormParameter Name="ListName" ParameterKey="ListName" PropertyName="ParameterValues" DefaultValue="ListToBeXML"/></SelectParameters><DeleteParameters><WebPartPages:DataFormParameter Name="ListName" ParameterKey="ListName" PropertyName="ParameterValues" DefaultValue="ListToBeXML"/></DeleteParameters><UpdateParameters><WebPartPages:DataFormParameter Name="ListName" ParameterKey="ListName" PropertyName="ParameterValues" DefaultValue="ListToBeXML"/></UpdateParameters><InsertParameters><WebPartPages:DataFormParameter Name="ListName" ParameterKey="ListName" PropertyName="ParameterValues" DefaultValue="ListToBeXML"/></InsertParameters></SharePoint:SPDataSource> </DataSources> <ParameterBindings> <ParameterBinding Name="ListName" Location="None" DefaultValue="ListToBeXML"/> <ParameterBinding Name="dvt_apos" Location="Postback;Connection"/> <ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/> <ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/> </ParameterBindings> <datafields>@Title,Title;@Book,Book;@Writer,Writer;@Year,Year;@ID,ID;@ContentType,Content Type;@Modified,Modified;@Created,Created;@Author,Created By;@Editor,Modified By;@_UIVersionString,Version;@Attachments,Attachments;@File_x0020_Type,File Type;@FileLeafRef,Name (for use in forms);@FileDirRef,Path;@FSObjType,Item Type;@_HasCopyDestinations,Has Copy Destinations;@_CopySource,Copy Source;@ContentTypeId,Content Type ID;@_ModerationStatus,Approval Status;@_UIVersion,UI Version;@Created_x0020_Date,Created;@FileRef,URL Path;</datafields> <XSL> <xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal"> <xsl:output method="html" indent="no"/> <xsl:decimal-format NaN=""/> <xsl:param name="dvt_apos">'</xsl:param> <xsl:variable name="dvt_1_automode">0</xsl:variable> <xsl:template match="/" xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:SharePoint="Microsoft.SharePoint.WebControls"> <xsl:call-template name="dvt_1"/> </xsl:template> <xsl:template name="dvt_1"> <xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" /> <xsl:text disable-output-escaping="yes"><Root></xsl:text> <xsl:call-template name="dvt_1.body"> <xsl:with-param name="Rows" select="$Rows" /> </xsl:call-template> <xsl:text disable-output-escaping="yes"></Root></xsl:text> </xsl:template> <xsl:template name="dvt_1.body"> <xsl:param name="Rows" /> <xsl:for-each select="$Rows"> <xsl:call-template name="dvt_1.rowview" /> </xsl:for-each> </xsl:template> <xsl:template name="dvt_1.rowview"> <xsl:text disable-output-escaping="yes"><item id="</xsl:text><xsl:value-of select="@ID" /><xsl:text disable-output-escaping="yes">"></xsl:text> <xsl:text disable-output-escaping="yes"><book></xsl:text><xsl:value-of select="@Book" /><xsl:text disable-output-escaping="yes"></book></xsl:text> <xsl:text disable-output-escaping="yes"><writer></xsl:text><xsl:value-of select="@Writer" /><xsl:text disable-output-escaping="yes"></writer></xsl:text> <xsl:text disable-output-escaping="yes"></item></xsl:text> </xsl:template> </xsl:stylesheet> </XSL> </WebPartPages:DataFormWebPart> |
So here is the actual result of our WebPart
1 2 3 4 5 6 7 8 9 10 11 | <?xml version="1.0" encoding="utf-8" ?> <Root> <item id="1"> <book>Some book</book> <writer>John Doe</writer> </item> <item id="2"> <book>Another book</book> <writer>Jane Doe</writer> </item> </Root> |
Follow Us!