Html 使用XSLT和Umbraco选择特定别名的最大项
我对一些XSLT和Umbraco有一个小挑战 输出招聘广告是一个“功能” 我必须在X个节点中选择最多3个节点(招聘广告),并在这3个节点中选择两个X类型和一个Y类型 我有一个名为Html 使用XSLT和Umbraco选择特定别名的最大项,html,xml,xslt,xpath,umbraco,Html,Xml,Xslt,Xpath,Umbraco,我对一些XSLT和Umbraco有一个小挑战 输出招聘广告是一个“功能” 我必须在X个节点中选择最多3个节点(招聘广告),并在这3个节点中选择两个X类型和一个Y类型 我有一个名为jobAdType的属性别名,我想选择两个具有jobAdType=Vikar的节点和一个具有jobAdType=Fast job的节点。广告类型从Umbraco中的下拉列表中选择 广告的XML是: <FrontPageAd id="1379" parentID="1246" level="3" creatorID=
jobAdType
的属性别名,我想选择两个具有jobAdType=Vikar
的节点和一个具有jobAdType=Fast job
的节点。广告类型从Umbraco中的下拉列表中选择
广告的XML是:
<FrontPageAd id="1379" parentID="1246" level="3" creatorID="0" sortOrder="0" createDate="2014-11-07T11:40:14" updateDate="2014-11-12T09:09:55" nodeName="Annonce 1" urlName="annonce-1" path="-1,1058,1246,1379" isDoc="" nodeType="1245" creatorName="ITSecurity" writerName="ITSecurity" writerID="0" template="0" nodeTypeAlias="FrontPageAd">
<adHeader>Headr</adHeader>
<adBodyText>jkdjdk</adBodyText>
<adCompany>Test firma</adCompany>
<adPosition>Test stilling</adPosition>
<adCompanyLogo>
<MultiNodePicker type="media">
<nodeId>1317</nodeId>
</MultiNodePicker>
</adCompanyLogo>
<jobAdType>Vikar</jobAdType>
</FrontPageAd>
头枕
jkdjk
试验菌落
试验消力
1317
助理牧师
当前的XSLT是:
:
:
您可以使用“应用模板”来代替以下各项:
<xsl:for-each select="$adIds [position() < 4]">
<!-- Is this .net call necessary? Is . another node other then the current one? -->
<xsl:variable name="adItem" select="umbraco.library:GetXmlNodeById(.)" />
<xsl:call-template name="JobTypeItem">
<xsl:with-param name="item" select="$adItem" />
</xsl:call-template>
</xsl:for-each>
然后限制select语句中的节点:
<xsl:apply-templates select="FrontPageAd[position() < 3][string(./jobAdType) = 'Vikar']"/>
<xsl:apply-templates select="FrontPageAd[position() < 2][string(./jobAdType) = 'Fast job']"/>
然后添加与FrontPageAd匹配的模板
<xsl:template match="FrontPageAd">
<!-- add code goes here. -->
</xsl:template>
<xsl:apply-templates select="FrontPageAd[position() < 3][string(./jobAdType) = 'Vikar']"/>
<xsl:apply-templates select="FrontPageAd[position() < 2][string(./jobAdType) = 'Fast job']"/>
<xsl:template match="FrontPageAd">
<!-- add code goes here. -->
</xsl:template>