{"id":420,"date":"2012-03-30T15:06:00","date_gmt":"2012-03-30T15:06:00","guid":{"rendered":"http:\/\/www.myfatblog.co.uk\/?p=420"},"modified":"2012-03-30T15:12:12","modified_gmt":"2012-03-30T15:12:12","slug":"xml-in-sharepoint-search-pt-2","status":"publish","type":"post","link":"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/","title":{"rendered":"XML in SharePoint Search Pt. 2"},"content":{"rendered":"<ol>\n<li><a href=\"http:\/\/www.myfatblog.co.uk\/?p=359\">Intro and History of XML<\/a><\/li>\n<li><a href=\"http:\/\/www.myfatblog.co.uk\/?p=366\">XML in SharePoint 101 <\/a><\/li>\n<li><a href=\"http:\/\/www.myfatblog.co.uk\/?p=398\">XML in SharePoint Search Pt. 1<\/a><\/li>\n<li>XML in SharePoint Search Pt. 2 (This post)<\/li>\n<\/ol>\n<h1>Using XSLT with Search Core Results Web part<\/h1>\n<p>In my last post I talked about how to use the Federated Locations area within the Search Service Application to deliver custom XSLT to your search results web parts across the farm. In this post, we\u00e2\u20ac\u2122re going to look at how we customise a single instance of the Core Search Results web part.<\/p>\n<p>To do this, we\u00e2\u20ac\u2122re going to deploy the XSLT file to the Site Assets library using SharePoint designer. Worth noting however, whilst this is nice and easy in our development environments or small scale deployments, you should really be thinking about deploying assets such as XSLT and CSS as SharePoint Solution packages. These enable you to take advantage of the additional performance benefits gained from deploying to the file system and not having your assets in the content database!<\/p>\n<p>To illustrate this technique, we\u00e2\u20ac\u2122re going to create a Site Collection navigation list. This will be a simple list of all of the Site Collections in the farm that we have access to. To do this, we shall use the following search query:- <\/p>\n<p><b><i>contentclass:sts_site<\/i><\/b><\/p>\n<p>This property query returns all of the items that have a content class of STS_Site, in other words all of our Site Collection Roots. If you try it now in your search box at the top of the SharePoint page, you should see a standard SharePoint result list showing your list of sites.<\/p>\n<p><a href=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_thumb.png\" width=\"564\" height=\"295\" \/><\/a><\/p>\n<p>We\u00e2\u20ac\u2122ll then style these results into a simple list that provides a navigation method using XSLT stored in the local site assets.<\/p>\n<p><a href=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image001.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"clip_image001\" border=\"0\" alt=\"clip_image001\" src=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image001_thumb.png\" width=\"139\" height=\"126\" \/><\/a><\/p>\n<p>To begin with, Place a Search Core results web part on your page and bring up the web part properties pane. Under <b><i>Core Results<\/i><\/b> open the <b><i>Results Query Options<\/i><\/b> tab and add our fixed keyword query<\/p>\n<p><a href=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image003.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"clip_image003\" border=\"0\" alt=\"clip_image003\" src=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image003_thumb.jpg\" width=\"178\" height=\"210\" \/><\/a><\/p>\n<p>NB: NO spaces between the <b><i>ContentClass : STS_Site<\/i><\/b>. If you add a space the query will fail.<\/p>\n<p>Now scroll down to <b><i>Miscellaneous<\/i><\/b> and add a URL to the <b><i>XSL Link<\/i><\/b> entry to point to our still to be created XSL file.<\/p>\n<p>Note: Because I\u00e2\u20ac\u2122m using a publishing page in the Pages library, I\u00e2\u20ac\u2122ve added <b><i>..\/Siteassets\/navlist.xsl<\/i><\/b> as my url, rather than <b><i>siteassets\/navlist.xsl<\/i><\/b>.<\/p>\n<p>Finally, scroll back to the <b><i>Display Properties<\/i><\/b> tab under <b><i>Core Results<\/i><\/b> and untick the <b><i>Use Localisation Visualisation<\/i><\/b> tickbox. Then click XSL editor and take a copy of everything in the pop up box into Notepad (other text editors are available \ud83d\ude0e <b><i>NB:<\/i><\/b> If the resulting pop-up is blank, you may need to save the page and re-edit it to populate this box.).<\/p>\n<p><a href=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image002.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"clip_image002\" border=\"0\" alt=\"clip_image002\" src=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image002_thumb.jpg\" width=\"170\" height=\"106\" \/><\/a><\/p>\n<p>Click OK, then save and close the page. (Or stop editing if using a Team Site).<\/p>\n<p>Switch to SharePoint Designer and open your web site. In the Site Objects navigation, choose Site Assets.<\/p>\n<p>In the ribbon, Click on the drop down under Asset and choose XML file.<\/p>\n<p><a href=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_3.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_thumb_3.png\" width=\"133\" height=\"139\" \/><\/a><\/p>\n<p>And name this <b><i>navlist.xsl<\/i><\/b> ,acknowledging the error about changing the extension when it pops up. Edit the resulting file and paste in the XSL that you took from the webpart properties, completely replacing anything in the new file.<\/p>\n<p>If you save this file and refresh the page, you shouldn\u00e2\u20ac\u2122t notice any difference to the search results as both XSLs are the same.<\/p>\n<p>If you are mildly paranoid like me and just want to be sure that your XSL is the one being used, Scroll down the XSL file until you find the following lines<\/p>\n<p><a href=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image0014.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"clip_image001[4]\" border=\"0\" alt=\"clip_image001[4]\" src=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image0014_thumb.png\" width=\"244\" height=\"23\" \/><\/a><\/p>\n<p>Between the &lt;xsl:template and the &lt;xsl:if, just add a short div tag with some text inside..<\/p>\n<p><a href=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image002.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"clip_image002\" border=\"0\" alt=\"clip_image002\" src=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image002_thumb.png\" width=\"244\" height=\"31\" \/><\/a><\/p>\n<p>And the top of the resulting search results should show:-<\/p>\n<p><a href=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image003.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"clip_image003\" border=\"0\" alt=\"clip_image003\" src=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image003_thumb.png\" width=\"244\" height=\"33\" \/><\/a><\/p>\n<p>If at this point, you don\u00e2\u20ac\u2122t see your message, then you need to check either the link to the XSL file that you typed (It\u00e2\u20ac\u2122s relative don\u00e2\u20ac\u2122t forget, so if your page is in a document library you need to use ..\/ to go back up the URL chain.)<\/p>\n<p><b><i>NB:<\/i><\/b> The other gotcha here is that if for any reason the XSL file is invalid, SharePoint will default to the last known good XSL, which could be a copy of your Site Assets XSL or the embedded WebPart properties copy. This means that if we make a mistake in our XSL we\u00e2\u20ac\u2122re not going to see it very easily at all! For that reason I will often take a copy of the Raw XML data from the search results, and use an XML\/XSL editor to test before placing the XSL code into SharePoint.<\/p>\n<p>Now that we know our XSL is being used, we can convert it to create our nice Unordered List.<\/p>\n<p>Working down the XSL file that we just created, Scroll down to the note line around line 76 that looks like:-<\/p>\n<p><a href=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image004.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"clip_image004\" border=\"0\" alt=\"clip_image004\" src=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image004_thumb.png\" width=\"244\" height=\"35\" \/><\/a><\/p>\n<p>Select the entire contents of the &lt;xsl:template&gt; tag and replace it with the following:-<\/p>\n<pre class=\"csharpcode\"><span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:template<\/span> <span class=\"attr\">name<\/span><span class=\"kwrd\">=&quot;dvt_1.empty&quot;<\/span><span class=\"kwrd\">&gt;<\/span>\r\n<span class=\"kwrd\">&lt;<\/span><span class=\"html\">div<\/span><span class=\"kwrd\">&gt;<\/span>No Results<span class=\"kwrd\">&lt;\/<\/span><span class=\"html\">div<\/span><span class=\"kwrd\">&gt;<\/span>\r\n<span class=\"kwrd\">&lt;\/<\/span><span class=\"html\">xsl:template<\/span><span class=\"kwrd\">&gt;<\/span><\/pre>\n<p>(NB: the no results tag should never be needed, but it\u00e2\u20ac\u2122s good to remove some of the extraneous code.)<\/p>\n<p>Just below this is the Main body template, again select the entire xsl:template tag and replace it with:-<\/p>\n<pre class=\"csharpcode\"><span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:template<\/span> <span class=\"attr\">name<\/span><span class=\"kwrd\">=&quot;dvt_1.body&quot;<\/span><span class=\"kwrd\">&gt;<\/span>\r\n<span class=\"kwrd\">&lt;<\/span><span class=\"html\">ul<\/span><span class=\"kwrd\">&gt;<\/span>\r\n    <span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:apply-templates<\/span> <span class=\"kwrd\">\/&gt;<\/span>\r\n<span class=\"kwrd\">&lt;\/<\/span><span class=\"html\">ul<\/span><span class=\"kwrd\">&gt;<\/span>\r\n<span class=\"kwrd\">&lt;\/<\/span><span class=\"html\">xsl:template<\/span><span class=\"kwrd\">&gt;<\/span><\/pre>\n<p>This creates a UL tag, then calls the rest of the search result templates before closing the UL tag again. The results templates that are left are Result, TotalResults and NumberOfResults. The templates for each of these are shown below and should replace the existing templates. (Note: we\u00e2\u20ac\u2122re only blanking out TotalResults and NumberofResults so they can be removed completely.)<\/p>\n<pre class=\"csharpcode\"><span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:template<\/span> <span class=\"attr\">match<\/span><span class=\"kwrd\">=&quot;Result&quot;<\/span><span class=\"kwrd\">&gt;<\/span> \r\n  <span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:variable<\/span> <span class=\"attr\">name<\/span><span class=\"kwrd\">=&quot;id&quot;<\/span> <span class=\"attr\">select<\/span><span class=\"kwrd\">=&quot;id&quot;<\/span><span class=\"kwrd\">\/&gt;<\/span>\r\n  <span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:variable<\/span> <span class=\"attr\">name<\/span><span class=\"kwrd\">=&quot;currentId&quot;<\/span> <span class=\"attr\">select<\/span><span class=\"kwrd\">=&quot;concat($IdPrefix,$id)&quot;<\/span><span class=\"kwrd\">\/&gt;<\/span>\r\n  <span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:variable<\/span> <span class=\"attr\">name<\/span><span class=\"kwrd\">=&quot;url&quot;<\/span> <span class=\"attr\">select<\/span><span class=\"kwrd\">=&quot;url&quot;<\/span><span class=\"kwrd\">\/&gt;<\/span>\r\n<span class=\"kwrd\">&lt;<\/span><span class=\"html\">li<\/span><span class=\"kwrd\">&gt;<\/span>\r\n        <span class=\"kwrd\">&lt;<\/span><span class=\"html\">a<\/span> <span class=\"attr\">id<\/span><span class=\"kwrd\">=&quot;{concat($currentId,'_Title')}&quot;<\/span><span class=\"kwrd\">&gt;<\/span>\r\n          <span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:attribute<\/span> <span class=\"attr\">name<\/span><span class=\"kwrd\">=&quot;href&quot;<\/span><span class=\"kwrd\">&gt;<\/span>\r\n            <span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:value-of<\/span>  <span class=\"attr\">select<\/span><span class=\"kwrd\">=&quot;$url&quot;<\/span><span class=\"kwrd\">\/&gt;<\/span>\r\n          <span class=\"kwrd\">&lt;\/<\/span><span class=\"html\">xsl:attribute<\/span><span class=\"kwrd\">&gt;<\/span>\r\n          <span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:attribute<\/span> <span class=\"attr\">name<\/span><span class=\"kwrd\">=&quot;title&quot;<\/span><span class=\"kwrd\">&gt;<\/span>\r\n            <span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:value-of<\/span> <span class=\"attr\">select<\/span><span class=\"kwrd\">=&quot;title&quot;<\/span><span class=\"kwrd\">\/&gt;<\/span>\r\n          <span class=\"kwrd\">&lt;\/<\/span><span class=\"html\">xsl:attribute<\/span><span class=\"kwrd\">&gt;<\/span>\r\n<span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:value-of<\/span> <span class=\"attr\">select<\/span><span class=\"kwrd\">=&quot;title&quot;<\/span><span class=\"kwrd\">\/&gt;&lt;\/<\/span><span class=\"html\">a<\/span><span class=\"kwrd\">&gt;<\/span>\r\n<span class=\"kwrd\">&lt;\/<\/span><span class=\"html\">li<\/span><span class=\"kwrd\">&gt;<\/span>\r\n<span class=\"kwrd\">&lt;\/<\/span><span class=\"html\">xsl:template<\/span><span class=\"kwrd\">&gt;<\/span>\r\n\r\n<span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:template<\/span> <span class=\"attr\">match<\/span><span class=\"kwrd\">=&quot;TotalResults&quot;<\/span><span class=\"kwrd\">&gt;&lt;\/<\/span><span class=\"html\">xsl:template<\/span><span class=\"kwrd\">&gt;<\/span>\r\n<span class=\"kwrd\">&lt;<\/span><span class=\"html\">xsl:template<\/span> <span class=\"attr\">match<\/span><span class=\"kwrd\">=&quot;NumberOfResults&quot;<\/span><span class=\"kwrd\">&gt;&lt;\/<\/span><span class=\"html\">xsl:template<\/span><span class=\"kwrd\">&gt;<\/span><\/pre>\n<p>The result template creates the LI for each result, each of which consists of a ListItem, containing an A tag for the link.<\/p>\n<p>The resultant output should be our nice navigation list.<\/p>\n<p><a href=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image0016.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"clip_image001[6]\" border=\"0\" alt=\"clip_image001[6]\" src=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/clip_image0016_thumb.png\" width=\"139\" height=\"126\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intro and History of XML XML in SharePoint 101 XML in SharePoint Search Pt. 1 XML in SharePoint Search Pt. 2 (This post) Using XSLT with Search Core Results Web part In my last post I talked about how to use the Federated Locations area within the Search Service Application to deliver custom XSLT to &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/\">Continue reading<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[23,16,31,39,24,59],"tags":[61],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>XML in SharePoint Search Pt. 2 - Blog of an overweight SharePoint addict<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"XML in SharePoint Search Pt. 2 - Blog of an overweight SharePoint addict\" \/>\n<meta property=\"og:description\" content=\"Intro and History of XML XML in SharePoint 101 XML in SharePoint Search Pt. 1 XML in SharePoint Search Pt. 2 (This post) Using XSLT with Search Core Results Web part In my last post I talked about how to use the Federated Locations area within the Search Service Application to deliver custom XSLT to &hellip; Continue reading\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of an overweight SharePoint addict\" \/>\n<meta property=\"article:published_time\" content=\"2012-03-30T15:06:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-03-30T15:12:12+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_thumb.png\" \/>\n<meta name=\"author\" content=\"Cimares\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cimares\" \/>\n<meta name=\"twitter:site\" content=\"@cimares\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cimares\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/\",\"url\":\"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/\",\"name\":\"XML in SharePoint Search Pt. 2 - Blog of an overweight SharePoint addict\",\"isPartOf\":{\"@id\":\"http:\/\/www.myfatblog.co.uk\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_thumb.png\",\"datePublished\":\"2012-03-30T15:06:00+00:00\",\"dateModified\":\"2012-03-30T15:12:12+00:00\",\"author\":{\"@id\":\"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/55ae8f6885bb5b8390dad001f3da83c6\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/#primaryimage\",\"url\":\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_thumb.png\",\"contentUrl\":\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_thumb.png\"},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.myfatblog.co.uk\/#website\",\"url\":\"http:\/\/www.myfatblog.co.uk\/\",\"name\":\"Blog of an overweight SharePoint addict\",\"description\":\"The rantings of a (not so) food obsessed IT consultant!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.myfatblog.co.uk\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/55ae8f6885bb5b8390dad001f3da83c6\",\"name\":\"Cimares\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/About_D057\/TopOfTheWorld.jpg\",\"contentUrl\":\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/About_D057\/TopOfTheWorld.jpg\",\"caption\":\"Cimares\"},\"sameAs\":[\"http:\/\/www.myfatblog.co.uk\"],\"url\":\"http:\/\/www.myfatblog.co.uk\/index.php\/author\/reginald\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"XML in SharePoint Search Pt. 2 - Blog of an overweight SharePoint addict","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/","og_locale":"en_US","og_type":"article","og_title":"XML in SharePoint Search Pt. 2 - Blog of an overweight SharePoint addict","og_description":"Intro and History of XML XML in SharePoint 101 XML in SharePoint Search Pt. 1 XML in SharePoint Search Pt. 2 (This post) Using XSLT with Search Core Results Web part In my last post I talked about how to use the Federated Locations area within the Search Service Application to deliver custom XSLT to &hellip; Continue reading","og_url":"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/","og_site_name":"Blog of an overweight SharePoint addict","article_published_time":"2012-03-30T15:06:00+00:00","article_modified_time":"2012-03-30T15:12:12+00:00","og_image":[{"url":"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_thumb.png"}],"author":"Cimares","twitter_card":"summary_large_image","twitter_creator":"@cimares","twitter_site":"@cimares","twitter_misc":{"Written by":"Cimares","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/","url":"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/","name":"XML in SharePoint Search Pt. 2 - Blog of an overweight SharePoint addict","isPartOf":{"@id":"http:\/\/www.myfatblog.co.uk\/#website"},"primaryImageOfPage":{"@id":"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/#primaryimage"},"image":{"@id":"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/#primaryimage"},"thumbnailUrl":"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_thumb.png","datePublished":"2012-03-30T15:06:00+00:00","dateModified":"2012-03-30T15:12:12+00:00","author":{"@id":"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/55ae8f6885bb5b8390dad001f3da83c6"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/www.myfatblog.co.uk\/index.php\/2012\/03\/xml-in-sharepoint-search-pt-2\/#primaryimage","url":"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_thumb.png","contentUrl":"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/XML-in-SharePoint-Search-Pt.-2_E26E\/image_thumb.png"},{"@type":"WebSite","@id":"http:\/\/www.myfatblog.co.uk\/#website","url":"http:\/\/www.myfatblog.co.uk\/","name":"Blog of an overweight SharePoint addict","description":"The rantings of a (not so) food obsessed IT consultant!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.myfatblog.co.uk\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/55ae8f6885bb5b8390dad001f3da83c6","name":"Cimares","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/image\/","url":"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/About_D057\/TopOfTheWorld.jpg","contentUrl":"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/About_D057\/TopOfTheWorld.jpg","caption":"Cimares"},"sameAs":["http:\/\/www.myfatblog.co.uk"],"url":"http:\/\/www.myfatblog.co.uk\/index.php\/author\/reginald\/"}]}},"_links":{"self":[{"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/420"}],"collection":[{"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/comments?post=420"}],"version-history":[{"count":7,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/420\/revisions"}],"predecessor-version":[{"id":428,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/420\/revisions\/428"}],"wp:attachment":[{"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/media?parent=420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/categories?post=420"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/tags?post=420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}