Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
xslt在节点集上应用模板_Xslt_Xslt 1.0_Node Set - Fatal编程技术网

xslt在节点集上应用模板

xslt在节点集上应用模板,xslt,xslt-1.0,node-set,Xslt,Xslt 1.0,Node Set,我必须使用XSL1.0,我有一个包含结果树片段的xslt变量。我想将模板样式应用于该变量 <xsl:template match="item"> <p> <xsl:apply-templates /> </p> </xsl:template> <xsl:template match="html_embed"> <xsl:variable name="htmlContents

我必须使用XSL1.0,我有一个包含结果树片段的xslt变量。我想将模板样式应用于该变量

 <xsl:template match="item">
   <p>
     <xsl:apply-templates />
   </p>     
 </xsl:template>

 <xsl:template match="html_embed">
   <xsl:variable name="htmlContents">
     <item>hello ian</item>
     <item>how are you?</item>
   </xsl:variable>

   <xsl:choose>
     <xsl:when test="function-available('msxsl:node-set')">
       <xsl:apply-templates select="msxsl:node-set($htmlContents)/node()" /> 
     </xsl:when>
     <xsl:otherwise>
       <p>node set not available</p>
     </xsl:otherwise>
   </xsl:choose>

 </xsl:template>


你好,伊恩 你好吗 节点集不可用

我正在使用node set函数将树片段转换为节点集,但它要么不起作用,要么找不到模板匹配,因为返回的只是一行文本,没有标记:

你好,你好吗


有没有关于如何转换项目节点的想法?

我试过了,效果不错。我将
html\u-embed
更改为
/
,以便能够在任何xml文档上应用您的模板,这就是我得到的:
你好,ian

你好吗?

。请注意,我使用VisualStudio运行此转换(因此处理器是XslCompiledTransform)。我模模糊糊地记得,本机xslt处理器的行为有点不同。我会尝试
msxsl:node-set($htmlContents)//*
,然后
msxsl:node-set($htmlContents)/*/*/*
,然后尝试用
项替换最后一个
*
,请编辑问题并提供完整的源XML文档(尽可能小,以重新处理问题)和完整的XSLT样式表(尽可能小,以便重新处理问题)。根据当前信息,我们只能猜测。我的猜测是,您的代码中有以下内容,您甚至没有向我们显示:
。如果是这种情况,只需删除此XSLT指令,如果没有其他问题,您可能会得到想要的结果。