<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title>Tom Van Gaever - Blog</title>
		<link>http://tomvangaever.be/blog/index.php</link>
		<description><![CDATA[www.tomvangaever.be<link type="text/css" rel="stylesheet" href="scripts/SyntaxHighlighter.css"></link>
<script language="javascript" src="scripts/shCore.js"></script>
<script language="javascript" src="scripts/shBrushCSharp.js"></script>
<script language="javascript" src="scripts/shBrushJScript.js"></script>
<script language="javascript" src="scripts/shBrushSql.js"></script>
<script language="javascript" src="scripts/shBrushXml.js"></script>
<script language="javascript" src="scripts/shBrushXml.js"></script>
<script language="javascript">
dp.SyntaxHighlighter.ClipboardSwf = '/scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>]]></description>
		<copyright>Copyright 2013, Tom Van Gaever</copyright>
		<managingEditor>Tom Van Gaever</managingEditor>
		<language>en-US</language>
		<generator>SPHPBLOG 0.4.8</generator>
		<item>
			<title>Last post on this blog - Time for v2</title>
			<link>http://tomvangaever.be/blog/index.php?entry=entry110506-223131</link>
			<description><![CDATA[
<img src="https://www.nothingbutsharepoint.com/sites/eusp/PublishingImages/2011-02-16-EndUserAdoption-02.png" style="float:left;" />
First and foremost, this blog is not going away!<br /><br />I won&#039;t be contributing here after this post.<br /><br />However I will continue my adventures on a new blog at <ins><a href="http://www.tomvangaever.be." target="_blank" >http://www.tomvangaever.be.</a></ins><br /><br />Thanks everyone, meet you there?]]></description>
			<category></category>
			<guid isPermaLink="true">http://tomvangaever.be/blog/index.php?entry=entry110506-223131</guid>
			<author>Tom Van Gaever</author>
			<pubDate>Fri, 06 May 2011 22:31:31 GMT</pubDate>
			<comments>http://tomvangaever.be/blog/comments.php?y=11&amp;m=05&amp;entry=entry110506-223131</comments>
		</item>
		<item>
			<title>Firefox 4 compatibility issues with SharePoint 2010 : Content Security Policy</title>
			<link>http://tomvangaever.be/blog/index.php?entry=entry110419-142605</link>
			<description><![CDATA[When you install FireFox 4, you instantly receive a new security mechanism called <b><a href="https://developer.mozilla.org/en/Introducing_Content_Security_Policy" target="_blank" >Content Security Policy</a></b>. This mechanism works behind the scenes to prevent some of the more severe web-based attacks against users and websites...<br /><br />While using Firefox 4 to access our latest project (custom solution based upon the SharePoint 2010 platform in https context), we noticed that we couldn&#039;t use the Out-of-the-box and often used <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.datetimecontrol.aspx" target="_blank" >Date Time Control</a><br /><br />The issue occurs when trying to switch to the next or previous month in the dialog that occurs after clicking on the calendar icon. In detail, the <i>HideUnhide(&#039;DatePickerDiv&#039;,&#039;DatePickerDivP1&#039;,&#039;20110501&#039;);</i> method wasn&#039;t executing as expected.<br /><br /><a href="javascript:openpopup('images/datetimecontrol_firefox4_issue.JPG',294,206,false);"><img src="images/datetimecontrol_firefox4_issue.JPG" width="294" height="206" border="0" alt="" /></a><br /><br />By using the fire bug plug-in I was able to detect this warning in the console panel after clicking on the next month icon.<br /><br /><img src="images/datetimecontrol_firefox4_issue_CSP.JPG" width="480" height="144" border="0" alt="" /><br /><br />the SharePoint DateTime control makes use of an underlying Iframe to display the popup and I think that this might trigger the security guard in FF4 to prevent <b><a href="http://en.wikipedia.org/wiki/Clickjacking" target="_blank" >clickjacking</a></b><br /><br /><b>from developer.mozilla.org</b><br /><blockquote><i>Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware.<br /><br />CSP is designed to be fully backward compatible; browsers that don&#039;t support it still work with servers that implement it, and vice-versa. Browsers that don&#039;t support CSP simply ignore it, functioning as usual, defaulting to the standard same-origin policy for web content. If the site doesn&#039;t offer the CSP header, browsers likewise use the standard same-origin policy.<br /><br />A secondary goal of CSP is to mitigate clickjacking. Clickjacking happens when a malicious site directs a victim&#039;s mouse click to an unintended target in another site. This is typically done by framing the target site&#039;s content in a transparent &lt;iframe&gt; element.<br /><br />CSP lets a site specify which sites may embed resources, thereby helping to prevent this sort of attack.</i><br /><br /><b style='color:red;'>Note: For security reasons, you can't use the <meta> element to configure the X-Content-Security-Policy header.</b></blockquote><br /><br />The policy can be delivered from the server to the client via an HTTP response header or an HTML meta element. Both mechanisms indicates that a resource must have the set of restrictions specified in the policy applied to it by the user-agent while rendering the content.<br />(<a href="https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html" target="_blank" >https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html</a>)<br /><br />Note: As soon as we tested the solution I&#039;ll update the post...<br /><br /><br />]]></description>
			<category>SharePoint</category>
			<guid isPermaLink="true">http://tomvangaever.be/blog/index.php?entry=entry110419-142605</guid>
			<author>Tom Van Gaever</author>
			<pubDate>Tue, 19 Apr 2011 14:26:05 GMT</pubDate>
			<comments>http://tomvangaever.be/blog/comments.php?y=11&amp;m=04&amp;entry=entry110419-142605</comments>
		</item>
		<item>
			<title>Microsoft SharePoint Online Developer Guide (Beta) - Sandboxed Solutions</title>
			<link>http://tomvangaever.be/blog/index.php?entry=entry110419-074602</link>
			<description><![CDATA[<img src="http://365experts.com/images/cloud-computing.png" width="260" height="160" border="0" alt="" id="img_float_left" /><b>Overview</b><br />This guide walks you through some of the rich features that are available to developers and designers in SharePoint Online in Office 365. It provides an overview of the feature set and extensibility points for SharePoint Online, and a discussion of how to create solutions for this new environment. This guide begins by describing the types of solutions you can build, and then addresses the developer tools for SharePoint 2010, the new platform features, and the solution deployment architecture.<br /><br /><a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4387e030-73dc-48e7-ac95-abc043b9335a" target="_blank" >http://www.microsoft.com/downloads/en/d ... c043b9335a</a>]]></description>
			<category></category>
			<guid isPermaLink="true">http://tomvangaever.be/blog/index.php?entry=entry110419-074602</guid>
			<author>Tom Van Gaever</author>
			<pubDate>Tue, 19 Apr 2011 07:46:02 GMT</pubDate>
			<comments>http://tomvangaever.be/blog/comments.php?y=11&amp;m=04&amp;entry=entry110419-074602</comments>
		</item>
		<item>
			<title>Description of Visual Studio 2010 Service Pack 1 -  IntelliTrace for SharePoint</title>
			<link>http://tomvangaever.be/blog/index.php?entry=entry110315-203438</link>
			<description><![CDATA[<b>IntelliTrace for 64-bit and SharePoint</b><br /><i><br />IntelliTrace is the revolutionary new debugging technology in Visual Studio 2010 that enables you to move forward and backward through a debug session. However, because of time constraints and because it is a completely new feature, this technology does not work in all scenarios.<br /><a href="http://support.microsoft.com/kb/983509" target="_blank" >http://support.microsoft.com/kb/983509</a><br /><br />Visual Studio 2010 SP1 enables the IntelliTrace debugging technology on 64-bit solutions and for Microsoft SharePoint farm solutions.<br /></i><br /><br /><b>What is IntelliTrace?</b><br /><a href="http://blogs.msdn.com/b/habibh/archive/2009/11/24/search-for-this-line-in-intellitrace.aspx" target="_blank" >http://blogs.msdn.com/b/habibh/archive/ ... trace.aspx</a><br /><br /><b>Example</b><br /><a href="http://msdn.microsoft.com/en-us/library/gg599007" target="_blank" >http://msdn.microsoft.com/en-us/library/gg599007</a><br />]]></description>
			<category>SharePoint</category>
			<guid isPermaLink="true">http://tomvangaever.be/blog/index.php?entry=entry110315-203438</guid>
			<author>Tom Van Gaever</author>
			<pubDate>Tue, 15 Mar 2011 20:34:38 GMT</pubDate>
			<comments>http://tomvangaever.be/blog/comments.php?y=11&amp;m=03&amp;entry=entry110315-203438</comments>
		</item>
		<item>
			<title>Correlation ID in SharePoint: Retrieve information from ULS by using a site action (Codeplex)</title>
			<link>http://tomvangaever.be/blog/index.php?entry=entry110206-151111</link>
			<description><![CDATA[Project Description<br />Enables a webpart and a ribbon button that allows you to retrieve the information recorded in the ULS log tagged with a specific correlation ID.<br /><br />This makes it much easier for SharePoint developers to retrieve the log messages for a specific correlation token.<br /><br /><ins><a href="http://spcorrelationviewwp.codeplex.com/" target="_blank" >http://spcorrelationviewwp.codeplex.com/</a><br /></ins><br /><br /><a href="javascript:openpopup('images/tvg-correlation-3.png',256,517,false);"><img src="images/tvg-correlation-3.png" width="149" height="300" border="0" alt="" id="img_float_left" /></a><br /><a href="javascript:openpopup('images/tvg-correlation-4.png',1366,822,false);"><img src="images/tvg-correlation-4.png" width="480" height="289" border="0" alt="" /></a><br /><br />More information regarding correlation Id&#039;s in SharePoint 2010:<br /><a href="http://sharepoint.microsoft.com/Blogs/GetThePoint/Lists/Posts/Post.aspx?ID=353" target="_blank" >http://sharepoint.microsoft.com/Blogs/G ... spx?ID=353</a><br /><a href="http://www.zimmergren.net/archive/2010/09/03/sp-2010-find-error-messages-with-a-correlation-id-token-in-sharepoint-2010.aspx" target="_blank" >http://www.zimmergren.net/archive/2010/ ... -2010.aspx</a><br /><br /> <img src="images/codeplex-logo_thumb.jpg" width="235" height="92" border="0" alt="" id="img_float_left" /> <br /> <a href="javascript:openpopup('http://www.avtex.com/images/test-library/2010/12/28/SharePoint-2010-Logo.png',500,375,false);"><img src="http://www.avtex.com/images/test-library/2010/12/28/SharePoint-2010-Logo.png" width="200" height="92" border="0" alt="" /></a><a href="javascript:openpopup('http://',800,600,false);"><img src="http://" border="0" alt="" /></a>]]></description>
			<category>SharePoint</category>
			<guid isPermaLink="true">http://tomvangaever.be/blog/index.php?entry=entry110206-151111</guid>
			<author>Tom Van Gaever</author>
			<pubDate>Sun, 06 Feb 2011 15:11:11 GMT</pubDate>
			<comments>http://tomvangaever.be/blog/comments.php?y=11&amp;m=02&amp;entry=entry110206-151111</comments>
		</item>
		<item>
			<title>SPMonitoredScope – SharePoint 2010 performance monitoring</title>
			<link>http://tomvangaever.be/blog/index.php?entry=entry110130-120500</link>
			<description><![CDATA[As SharePoint developers we aren’t only responsible for creating the functionality business requires, but we are also responsible for the overall quality of the solution we build. This means an ergonomic fluent user interface, code that is suitable for changes and in my opinion one of the most important aspects, a good performance. Most of these topics are described in white papers, best practices and millions of books and blog posts… but wouldn’t it be a pleasure if it was already in the platform?<br /> Yes, indeed!  That is why the SharePoint team provided us with the developer dashboard and the SPMonitoredScope class!<br /><br /><b>How to activate the developer dashboard? </b><br />There are several different ways to activate and deactivate the toolbar; it is up to your greater judgment to decide which one seems the most suitable for your situation. By default it is deactivated, so the first step would be the activation. You can do this by using STSADM, PowerShell or C#<br /><br /><b>STSADM </b><br /> <pre name="code" class="c#">stsadm -o setproperty -pn developer-dashboard -pv on
stsadm -o setproperty -pn developer-dashboard -pv off
stsadm -o setproperty -pn developer-dashboard -pv OnDemand
</pre>
<br /><br /><b>PowerShell </b><br /> <pre name="code" class="c#">
Add-PSSnapin Microsoft.SharePoint.Powershell
$dash =[Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings;
$dash.DisplayLevel = 'OnDemand';
$dash.TraceEnabled = $true;
$dash.Update() </pre>
<br /><br /><b>PowerShell function </b><br /> <pre name="code" class="c#">
function Set-DevDashboard ( [string] $setting ) {
    $dashboardSetting = [Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings
    Write-Host "Setting Developer Dashboard DisplayLevel to $setting." -ForegroundColor Gray
    switch -exact ($setting) {
        "On" { 
            $dashboardSetting.DisplayLevel = [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::On
         }
         "OnDemand" {
            $dashboardSetting.DisplayLevel = [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::OnDemand
         }
         "Off" {
            $dashboardSetting.DisplayLevel = [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::Off
         }
         Default {
            "Valid settings are On, OnDemand, or Off."
            break
         }
    }
    $dashboardSetting.Update()
} 
</pre>
<br /><br /><b>How to provide custom traces in developer dashboard? </b><br /><br />SPMonitoredScope inherits from IDisposable, so it is better to use it in combination with a using statement.<br />
<pre name="code" class="c#">
public class SPMonitoredScope : IDisposable
</pre>
<br />If you specify the onDemand setting, you receive a link button which displays a button which you can use to toggle the dashboard.<br /><br />In order to demonstrate how easy it is, I created a new visual web part project and added this code in the page_load method. The code does nothing special, a single thread.sleep to simulate a long running operation and the monitoredscope  class around it.<br />
<pre name="code" class="c#">
using Microsoft.SharePoint.Utilities;
protected void Page_Load(object sender, EventArgs e)
{
using (SPMonitoredScope GetListsBtnScope = new SPMonitoredScope("tomvangaever_call_1"))
{
Thread.Sleep(2000);
}
}

</pre>
<br />If we add the web part to the page and open the developer dashboard by using the new icon that appears next to your username, you can see that there is a new message in the dashboard and ULS view:<br /><br /><em>tomvangaever_call_1 (1999.67 ms)</em> <br /><br /><a href="javascript:openpopup('images/developdashboard_ondemand.png',888,767,false);"><img src="images/developdashboard_ondemand.png" width="480" height="415" border="0" alt="" /></a><br /><a href="javascript:openpopup('images/developdashboard_uls.png',948,522,false);"><img src="images/developdashboard_uls.png" width="480" height="264" border="0" alt="" /></a><br /><br /><b>How to provide the developer dashboard on a custom master page? </b><br />In order to provide this functionality on your own master page or custom page, you need 2 components. The first component (<em>SharePoint:DeveloperDashboardLauncher</em>) is the link button that allows you to enable/disable the dashboard. The second component is the dashboard (<em>SharePoint:DeveloperDashboard</em>)control itself.<br /><br /><a href="javascript:openpopup('images/developdashboard_masterpage_aspx.png',1018,90,false);"><img src="images/developdashboard_masterpage_aspx.png" width="480" height="42" border="0" alt="" /></a><br /><br /><a href="javascript:openpopup('images/developdashboard_masterpage.png',1053,334,false);"><img src="images/developdashboard_masterpage.png" width="480" height="152" border="0" alt="" /></a><br /><br /><b>When should I use it? </b><br />I would recommend using the SPMonitoredScope as a best practice around each major code block in your public methods. And while testing your web part you can review (and maybe improve) the performance of your code in detail.<br /><b>What about sandboxed solutions? </b><br />You cannot use SPMonitoredScope in Sandboxed Solutions.  <br /><br />Happy SPCoding !!]]></description>
			<category>SharePoint</category>
			<guid isPermaLink="true">http://tomvangaever.be/blog/index.php?entry=entry110130-120500</guid>
			<author>Tom Van Gaever</author>
			<pubDate>Sun, 30 Jan 2011 12:05:00 GMT</pubDate>
			<comments>http://tomvangaever.be/blog/comments.php?y=11&amp;m=01&amp;entry=entry110130-120500</comments>
		</item>
		<item>
			<title>Webservice Xslt Transformer WebPart for SharePoint 2010 (Extended XML Viewer Webpart)</title>
			<link>http://tomvangaever.be/blog/index.php?entry=entry110110-195036</link>
			<description><![CDATA[I&#039;m happy to announce a new webpart that extends the powerfull XML Viewer webpart. This new web part is 100% available at codeplex.<br /><br />It allows you to provide the URL of a web service, a SOAP Envelope, a SOAP Action and an XSLT definition.<br /><br />When the webpart is added to a page, it wil automatically access the predefinied web service with the provide soap envelope. The XML that is returned by the web service is transformed by using the user definied XSLT.<br /><br />This approach allows you to quickly provide show data from an external system in a no-code-solution.<br /><br />Download the wsp and/or code from   <ins><a href="http://spxsltws.codeplex.com/" target="_blank" >codeplex.com</a></ins> <br /><br /> <img src="images/xslt_webpart_4.png" width="480" height="348" border="0" alt="" /> <br /><br />I hope it can help you!<br /><br /> <img src="images/codeplex-logo_thumb.jpg" width="235" height="92" border="0" alt="" id="img_float_left" /> <br /> <a href="javascript:openpopup('http://www.avtex.com/images/test-library/2010/12/28/SharePoint-2010-Logo.png',500,375,false);"><img src="http://www.avtex.com/images/test-library/2010/12/28/SharePoint-2010-Logo.png" width="200" height="92" border="0" alt="" /></a>]]></description>
			<category></category>
			<guid isPermaLink="true">http://tomvangaever.be/blog/index.php?entry=entry110110-195036</guid>
			<author>Tom Van Gaever</author>
			<pubDate>Mon, 10 Jan 2011 19:50:36 GMT</pubDate>
			<comments>http://tomvangaever.be/blog/comments.php?y=11&amp;m=01&amp;entry=entry110110-195036</comments>
		</item>
		<item>
			<title>Special Characters (é,ç,à, ... , è) not readable in mail sent from SharePoint</title>
			<link>http://tomvangaever.be/blog/index.php?entry=entry101130-083643</link>
			<description><![CDATA[Change the character set in Outgoing E-Mail Settings from the Central Administration to the appropriate setting.<br /><br />MSDN:<br /><i>When you configure outgoing e-mail, you will need to specify the character set to use in the body of e-mail messages. A character set is a mapping of characters to their identifying code values. The default character set for outgoing e-mail is Unicode UTF-8, which allows most combination of characters (including bidirectional text) to co-exist in a single document. In most cases, the default setting of UTF-8 works well, although East Asian languages are best rendered with their own character set.</i><br /><br />We switched from Unicode UTF-8 to 1252 Western Europe (Windows) and it worked perfectly without changing the code of that project.<br /><i><br />Credits to Mathias Verlee and his statement &#039;The problem is most likely not the code, but configuration&#039;. ;)</i>]]></description>
			<category>SharePoint</category>
			<guid isPermaLink="true">http://tomvangaever.be/blog/index.php?entry=entry101130-083643</guid>
			<author>Tom Van Gaever</author>
			<pubDate>Tue, 30 Nov 2010 08:36:43 GMT</pubDate>
			<comments>http://tomvangaever.be/blog/comments.php?y=10&amp;m=11&amp;entry=entry101130-083643</comments>
		</item>
		<item>
			<title>SharePoint 2010 and XSL - The XML Viewer Web Part - Weather Information - Lesson 1</title>
			<link>http://tomvangaever.be/blog/index.php?entry=entry101017-200726</link>
			<description><![CDATA[In SharePoint 2007 we could very quickly create a powerful solution without using a single line of server code. The key component for this solution was using SharePoint Designer, the Data View Web Part and XSL. In SharePoint 2010 they have provided us with a web part that allows providing the specific location of an xml file and the location of an xsl file.<br /><br />The location of the xml file can of course be any link that provides xml, for this demonstration I would like to keep it easy and show that SharePoint 2010 has the mechanisms provided to communicate with other external systems.<br /><br />1) Add an XML View Web Part to your SharePoint page and open the properties pane<br /><a href="javascript:openpopup('images/xml-viewer-webpart.png',966,387,false);"><img src="images/xml-viewer-webpart.png" width="150" height="60" border="0" alt="" /></a><br /><br />2) Specify the following url in the XML link textbox <a href="http://www.google.com/ig/api?weather=Brussels" target="_blank" >(http://www.google.com/ig/api?weather=Brussels</a>). As you can see in the url, I&#039;ve provided Brussels as current location. Of course you are free to provide the city where you are currently located to retrieve your local weather forecast.<br /><a href="javascript:openpopup('images/xml-viewer-webpart-properties.png',233,405,false);"><img src="images/xml-viewer-webpart-properties.png" width="150" height="261" border="0" alt="" /></a><br /><br />3) Provide the following lines of xml in the XSL editor (this xsl will retrieve all the transform all the data from the xml, but there is no css style applied<br />
<pre name="code" class="xml">
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output indent="yes" method="html" encoding="us-ascii"/>
	<xsl:template match="/">	
		<!-- TODAY -->
		<!--ICON-->
		<img>
			<xsl:attribute name="src">
			<a href="http://www.google.com<xsl" target="_blank" >http://www.google.com<xsl</a>:value-of select="xml_api_reply/weather/current_conditions/icon/@data"/>
			</xsl:attribute>
		</img>
		<!--TEMP-->
		<div>
			<xsl:value-of select="xml_api_reply/weather/current_conditions/temp_c/@data"/> °C
		</div>
		<!--CONDITION-->
		<div>
			<xsl:value-of select="xml_api_reply/weather/current_conditions/condition/@data"/>
		</div>
		<!-- FORECAST -->
		<xsl:for-each select="xml_api_reply/weather/forecast_conditions">
			<img>
				<xsl:attribute name="src">http://www.google.com<xsl:value-of select="icon/@data"/></xsl:attribute>
			</img>
			<div>
				<xsl:value-of select="day_of_week/@data"/>
			</div>
			<div>
				<!--Fahrenheit to Celsius-->
				min: <xsl:value-of select="floor((low/@data - 32) * (5 div 9))"/>°C - max: <xsl:value-of select="floor((high/@data - 32) * (5 div 9))"/>°C
			</div>
			<div>
				<xsl:value-of select="condition/@data"/>
			</div>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>
</pre>
<br /><br />4) The next xsl snippet has some Cascading Style Sheet embedded. Feel free to reuse it as a base for your own custom style. <br />
<pre name="code" class="xml">
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output indent="yes" method="html" encoding="us-ascii"/>
	<xsl:template match="/">
		<!--STYLE-->
		<style type="text/css">
			.tvg-weather-body
		    {
		        position: relative;
		        clear: both;
		        width: 250px;
		    }  
		    .tvg-weather-image
		    {
		        position: relative;
		        float: left;
		        padding: 7px;
				width: 50px;
		    }    
		    .tvg-weather-details
		    {
		        padding: 7px;
		        position: relative;
		        float: right;
				text-align:left;
				width: 150px;
		    }  
			.tvg-weather-title{
				color:#21374C;
			}
    	</style>
		<!--HTML-->
		<!-- TODAY -->
		<div>
			<b class="tvg-weather-title">Current</b>
		</div>
		<div class="tvg-weather-body">
			<div class="tvg-weather-image">
				<img>
					<xsl:attribute name="src">http://www.google.com<xsl:value-of select="xml_api_reply/weather/current_conditions/icon/@data"/></xsl:attribute>
				</img>
			</div>
			<div class="tvg-weather-details">				
				<div>
					<b>
						<xsl:value-of select="xml_api_reply/weather/current_conditions/temp_c/@data"/> °C
					</b>
				</div>
				<div>
					<xsl:value-of select="xml_api_reply/weather/current_conditions/condition/@data"/>
				</div>
			</div>
		</div>
		<!-- FORECAST -->
		<div style="clear:both;">
		<b class="tvg-weather-title">Forecasts</b>
		</div>
		<xsl:for-each select="xml_api_reply/weather/forecast_conditions">
			<div class="tvg-weather-body">
				<div class="tvg-weather-image">
					<img>
						<xsl:attribute name="src">http://www.google.com<xsl:value-of select="icon/@data"/></xsl:attribute>
					</img>
				</div>
				<div class="tvg-weather-details">
					<div>
						<b>
							<i>
								<xsl:value-of select="day_of_week/@data"/>
							</i>
						</b>
					</div>
					<div>
						<b>min: <xsl:value-of select="floor((low/@data - 32) * (5 div 9))"/>°C - max: <xsl:value-of select="floor((high/@data - 32) * (5 div 9))"/>°C</b>
					</div>
					<div>
						<xsl:value-of select="condition/@data"/>
					</div>
				</div>
			</div>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>
</pre>
<br /><br />This should be the result in your page:<br /><a href="javascript:openpopup('images/xml-viewer-webpart-preview.png',585,518,false);"><img src="images/xml-viewer-webpart-preview.png" width="100" height="89" border="0" alt="" /></a><br /><br />The web part can also be downloaded from here;<br /><a href="http://tomvangaever.be/blog/sp2010/tvg-weather-webpart.dwp" target="_blank" >http://tomvangaever.be/blog/sp2010/tvg- ... ebpart.dwp</a><br /><br />]]></description>
			<category>SharePoint</category>
			<guid isPermaLink="true">http://tomvangaever.be/blog/index.php?entry=entry101017-200726</guid>
			<author>Tom Van Gaever</author>
			<pubDate>Sun, 17 Oct 2010 20:07:26 GMT</pubDate>
			<comments>http://tomvangaever.be/blog/comments.php?y=10&amp;m=10&amp;entry=entry101017-200726</comments>
		</item>
		<item>
			<title> Important: ASP.NET Security Vulnerability </title>
			<link>http://tomvangaever.be/blog/index.php?entry=entry100921-100831</link>
			<description><![CDATA[Vulnerability in ASP.NET Could Allow Information Disclosure<br />Published: September 17, 2010 | Updated: September 20, 2010<br /><br /><a href="http://visualstudiomagazine.com/articles/2010/09/14/aspnet-security-hack.aspx" target="_blank" >http://visualstudiomagazine.com/article ... -hack.aspx</a><br /><a href="http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx" target="_blank" >http://weblogs.asp.net/scottgu/archive/ ... ility.aspx</a><br /><a href="http://weblogs.asp.net/scottgu/archive/2010/09/20/frequently-asked-questions-about-the-asp-net-security-vulnerability.aspx" target="_blank" >http://weblogs.asp.net/scottgu/archive/ ... ility.aspx</a><br /><a href="http://www.microsoft.com/technet/security/advisory/2416728.mspx" target="_blank" >http://www.microsoft.com/technet/securi ... 16728.mspx</a><br /><a href="http://blog.krisvandermast.com/ImportantASPNETSecurityVulnerability.aspx" target="_blank" >http://blog.krisvandermast.com/Importan ... ility.aspx</a><br /><br /><b>Security Patch Is Available:</b> <a href="http://blogs.msdn.com/b/sharepoint/archive/2010/09/28/ms10-070-released-out-of-band-today.aspx" target="_blank" >http://blogs.msdn.com/b/sharepoint/arch ... today.aspx</a>]]></description>
			<category>.NET</category>
			<guid isPermaLink="true">http://tomvangaever.be/blog/index.php?entry=entry100921-100831</guid>
			<author>Tom Van Gaever</author>
			<pubDate>Tue, 21 Sep 2010 10:08:31 GMT</pubDate>
			<comments>http://tomvangaever.be/blog/comments.php?y=10&amp;m=09&amp;entry=entry100921-100831</comments>
		</item>
	</channel>
</rss>

