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
Xml 如何在XSLT中为标记引用使用大于函数_Xml_Xslt - Fatal编程技术网

Xml 如何在XSLT中为标记引用使用大于函数

Xml 如何在XSLT中为标记引用使用大于函数,xml,xslt,Xml,Xslt,我有一个XSLT,如下所示: <xsl:if test="PARENT_TAG[1]"> do somthing </xsl:if> <xsl:if test="PARENT_TAG[2-100]"> <!--need some logic here to capture all the parent_tags greater than "1"--> do something different </xsl:if> <xsl:

我有一个XSLT,如下所示:

<xsl:if test="PARENT_TAG[1]">
do somthing
</xsl:if>
<xsl:if test="PARENT_TAG[2-100]"> <!--need some logic here to capture all the parent_tags greater than "1"-->
do something different
</xsl:if>
<xsl: for-each select="HIGHLEVEL_TAG">    
    <xsl:if test="PARENT_TAG[1]">
      do somthing
    </xsl:if>
    <xsl:if test="PARENT_TAG[2-100]"> <!--need some logic here to capture all the parent_tags greater than "1"-->
      do something different
    </xsl:if>
</xsl:for-each>

干坏事
现在,我还想对大于1的所有父标记执行其他操作,例如:父标记[2]、父标记[3]、父标记[4]、父标记[5]。。。。。。。。。家长标签[100]

可能是这样的:

<xsl:if test="PARENT_TAG[1]">
do somthing
</xsl:if>
<xsl:if test="PARENT_TAG[2-100]"> <!--need some logic here to capture all the parent_tags greater than "1"-->
do something different
</xsl:if>
<xsl: for-each select="HIGHLEVEL_TAG">    
    <xsl:if test="PARENT_TAG[1]">
      do somthing
    </xsl:if>
    <xsl:if test="PARENT_TAG[2-100]"> <!--need some logic here to capture all the parent_tags greater than "1"-->
      do something different
    </xsl:if>
</xsl:for-each>

做些不同的事情
如何在XSLT中应用此逻辑?请帮忙! 这两个if条件都在顶层逻辑共享同级关系内。像这样:

<xsl:if test="PARENT_TAG[1]">
do somthing
</xsl:if>
<xsl:if test="PARENT_TAG[2-100]"> <!--need some logic here to capture all the parent_tags greater than "1"-->
do something different
</xsl:if>
<xsl: for-each select="HIGHLEVEL_TAG">    
    <xsl:if test="PARENT_TAG[1]">
      do somthing
    </xsl:if>
    <xsl:if test="PARENT_TAG[2-100]"> <!--need some logic here to capture all the parent_tags greater than "1"-->
      do something different
    </xsl:if>
</xsl:for-each>

干坏事
做些不同的事情
XSLT本身就是XML。它必须遵守XML的语法规则
是XPath中的有效运算符,但如果在XML中使用它们,则它们必须是XML转义运算符

<xsl:if test="$foo &gt; 1"> <!-- translates to '$foo > 1' during parsing of the XSLT document -->


回答这个问题的每个人似乎都在以不同的方式阅读您的需求,这表明您的问题的清晰度存在问题

您首先会说“我有一个看起来像这样的XSLT”,但您没有告诉我们它打算做什么,而且因为它可能是错误的,所以我们无法从代码中推断需求

然后,您会说“现在我还想为大于1的所有父标记执行其他操作”。这对我来说意味着第一位代码只用于处理第一个PARENT_标记

如果我的解释是正确的,那么您可能需要:

<xsl:for-each select="PARENT_TAG">
  <xsl:choose>
    <xsl:when test="position()=1"> do something </xsl:when>
    <xsl:otherwise> do something else </xsl:otherwise>
  </xsl:choose>
</xsl:for-each>

做点什么
做点别的

如果您不习惯用明确的法律术语编写规范,那么传达您的需求的一个好方法通常是通过一个示例:向我们展示典型的输入和所需的输出。

您可以共享输入XML结构吗?在这种情况下,您可能需要使用
,但如果可以共享输入XML,则也可以提供替代解决方案,即。使用
position()
函数等。