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
XSL:如何基于单独的XML元素限制select-in-apply模板_Xml_Xslt_Select_Apply Templates - Fatal编程技术网

XSL:如何基于单独的XML元素限制select-in-apply模板

XSL:如何基于单独的XML元素限制select-in-apply模板,xml,xslt,select,apply-templates,Xml,Xslt,Select,Apply Templates,下面是我正在尝试做的一个例子。 XML: XSL: 这可能吗?在实际的xsl中,我目前有如下内容: <xsl:apply-templates select="(ANSWER|GROUP)[position() mod 2 = 0]"/> 我想找到一种方法,根据xml中的不同元素限制选择的答案。希望我已经清楚地解释了这一点,如果没有,请告诉我。也许有更好的方法来做这样的事情。我愿意接受任何反馈或建议。谢谢。此XPath表达式(节点集比较)使用节点作为上下文: A[not(

下面是我正在尝试做的一个例子。 XML:


XSL:


这可能吗?在实际的xsl中,我目前有如下内容:

<xsl:apply-templates select="(ANSWER|GROUP)[position() mod 2 = 0]"/>

我想找到一种方法,根据xml中的不同元素限制选择的答案。希望我已经清楚地解释了这一点,如果没有,请告诉我。也许有更好的方法来做这样的事情。我愿意接受任何反馈或建议。谢谢。

此XPath表达式(节点集比较)使用
节点作为上下文:

A[not(@id = ../../SOME_OTHER_NODE/B[@invalid='1']/@nodeId)]
带钥匙:

<xsl:key name="kInvalidTest" match="B[@invalid=1]" use="@nodeId"/>
...
<xsl:appy-templates select="A[not(key('kInvalidTest',@id))]"/>  

...

工作起来很有魅力。非常感谢。将更多元素添加到某个\u其他\u节点后,它将不再工作,因为isHidden匹配多个元素。思想?对不起,我是说,我没有被抛弃invalid@testing123:没问题,随时问。
A[not(@id = ../../SOME_OTHER_NODE/B[@invalid='1']/@nodeId)]
<xsl:key name="kInvalidTest" match="B[@invalid=1]" use="@nodeId"/>
...
<xsl:appy-templates select="A[not(key('kInvalidTest',@id))]"/>