我有两个功能:
GetHomeXml() -> returns a collection of pages with a custom meta type
SiteMapXml() -> standard sitemap xml
SiteMapXml() 有一个属性 (isCurrent),如果页面是当前页面,则返回该属性。我需要确定页面的名称是否出现在 GetHomeXml() 中,以及 GetHomeXml() 中的节点是否具有分配给它的 Image.FileName 属性。
我可以让两者都返回,但我无法弄清楚 XSL 来实现这一点。以下是我目前所拥有的:
<xsl:param name="currentPage" select="/in:inputs/in:result[@name='SitemapXml']/Page/@iscurrent" />
<xsl:for-each select="/in:inputs/in:result[@name='GetHomeXml']/Image">
<xsl:if test="@Image.PageTitle = $currentPage.Title">
<img src="@Image.FileName" />
</xsl:if>
</xsl:for-each>
我创建了一个自定义元数据条目,并向其中添加了 3 个字段 {IsTab、Image、Color}。我想确定当前页面是否包含Image字段,并且分配给它的Page.Title与当前页面相同,以渲染指定的图像(它是一个数据引用字段,具有图像查找属性图像目录)进入标签。
但是这段代码似乎没有返回任何东西?
更新:
GetHomeXml() 返回的 XML 如下:
<!-- Function Call Result (0 ms), XPath /in:inputs/in:result[@name='GetHomeXml']/IsTab -->
<in:result name="GetHomeXml">
<IsTab Id="9eba448e-9a30-478e-81b2-530bc7da2545" IsTab="true" BackgroundImg="MediaArchive:34f9be39-8273-4960-8cc6-e6b76f34e6ac" BackgroundImg.FileName="home-group-2.png" PageId.Title="Contact Us" xmlns=""/>
<IsTab Id="a46e2e98-ffcd-4675-8840-389d1a7f46ca" IsTab="true" PageId.Title="Welcome" xmlns=""/>
<IsTab Id="c76fa101-8c63-46e2-9431-e18ce875866d" IsTab="false" PageId.Title="What we do" xmlns=""/>
我想获取图像的名称,基于当前页面(PageId.Title)我需要匹配回与 SiteMapXml 中当前页面关联的返回值:
<!-- Function Call Result (0 ms), XPath /in:inputs/in:result[@name='SitemapXml']/Page -->
<in:result name="SitemapXml">
<Page Id="62c66cb6-b2ec-4469-b0d7-54bc61b22c20" Title="Home" MenuTitle="Home" UrlTitle="Home" Description="Default web site for... Please do not change any of the settings for this site. Add, modify and delete pages underneath this web site, but do no touch this site." ChangedDate="2011-12-04T22:36:33.2651194+02:00" ChangedBy="admin" URL="/Home/c1mode(unpublished)" Depth="1" xmlns="">
<Page Id="041c7d66-60cd-4098-ac98-728c0db111a1" Title="Welcome" MenuTitle="Welcome" UrlTitle="Welcome" Description="" ChangedDate="2011-12-04T22:38:06.2815949+02:00" ChangedBy="admin" URL="/Home/Welcome/c1mode(unpublished)" Depth="2"/>
<Page Id="8ae4d8a5-f4d9-43ed-85de-90b6d3a6f0b8" Title="Contact Us" MenuTitle="Contact Us" UrlTitle="Contact-Us" Description="" ChangedDate="2011-12-04T22:54:10.1503871+02:00" ChangedBy="admin" URL="/Home/Contact-Us/c1mode(unpublished)" isopen="true" iscurrent="true" Depth="2"/>
<Page Id="ed5560a4-140b-4851-ac19-5ddc6c66a770" Title="What we do" MenuTitle="What we do" UrlTitle="What-we-do" Description="" ChangedDate="2011-11-28T07:23:25.8851421+02:00" ChangedBy="admin" URL="/Home/What-we-do/c1mode(unpublished)" Depth="2"/>
</Page>
</in:result>
</in:result>