Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 使用XSLT和Umbraco选择特定别名的最大项_Html_Xml_Xslt_Xpath_Umbraco - Fatal编程技术网

Html 使用XSLT和Umbraco选择特定别名的最大项

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=

我对一些XSLT和Umbraco有一个小挑战

输出招聘广告是一个“功能”

我必须在X个节点中选择最多3个节点(招聘广告),并在这3个节点中选择两个X类型和一个Y类型

我有一个名为
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() &lt; 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() &lt; 3][string(./jobAdType) = 'Vikar']"/>
    <xsl:apply-templates select="FrontPageAd[position() &lt; 2][string(./jobAdType) = 'Fast job']"/>
    
    
    
    然后添加与FrontPageAd匹配的模板

    <xsl:template match="FrontPageAd">
    <!-- add code goes here. -->
    </xsl:template>
    
    
    
    <xsl:apply-templates select="FrontPageAd[position() &lt; 3][string(./jobAdType) = 'Vikar']"/>
    <xsl:apply-templates select="FrontPageAd[position() &lt; 2][string(./jobAdType) = 'Fast job']"/>
    
    <xsl:template match="FrontPageAd">
    <!-- add code goes here. -->
    </xsl:template>