我的XSLT1.0模板中有两个变量,每个变量包含一个节点集(用xpath选择)。我想确定一个变量中的节点集是否包含在另一个变量中的节点集中。例如,假设我有一个包含嵌套部分的章节。我想看看$b
是否包含在$a
中:
<xsl:variable name="a" select="chapter//section" />
<xsl:variable name="b" select="chapter//section" />
我试图获取节点集的交集,以查看$a
是否是$a
和$b
共享的第一个公共元素,但这不起作用:
<xsl:if test="$a/ancestor-or-self::*[count(.|$b) = count($b/ancestor::*)][1] = $a">
添加一些上下文。我正在用这个xslt为html页面树创建一个选项卡式界面,我试图解决的问题是将class=“current”放在适当的选项卡上。通过测试每个部分,看看它是否是tab部分的子部分,它会得到class=“current”,因此选项卡的样式将看起来像是在顶部。
我用另一种方法解决了这个问题。我测试$b
的每个祖先元素,看看它是否与$a
具有相同的xml:id:
<xsl:if test="boolean($b/ancestor-or-self::[@xml:id=$a/@xml:id])">
虽然这不是使用交集,但它会告诉$a
是否包含$b
。
要详细介绍迈克尔·凯的好答案:
当节点$n
属于节点集$ns
时?
如果一个节点属于一个节点集,那么该节点与该节点集的并集不会产生更大的节点集——因此该并集中的节点数不能大于(实际上必须等于)原始节点集中的节点数。
要使用XPath表达式来表达:
count($n | $ns) = count($ns)
现在,同样的逻辑告诉我们,当两个节点集的并集不包含比较大节点集更多的元素时,节点集$ns1
就是节点集$ns2
的子集:
count($ns1 | $ns2) = count($ns2)
如果我们想测试$ns1
是否是$ns2
的真实子集:
count($ns1 | $ns2) = count($ns2)
and
count($ns2) > count(ns1)
我想你可以简单地使用Count($a)=Count($a|$b)
,如果$b中有任何节点不在$a中,则计数会不同。
本文向大家介绍检查Java HashSet集合是否包含另一个Collection,包括了检查Java HashSet集合是否包含另一个Collection的使用技巧和注意事项,需要的朋友参考一下 若要检查HashSet是否包含另一个,请使用方法。 设置第一个HashSet 设置第二个HashSet 现在检查 以下是检查Java中的HashSet集合是否包含另一个Collection的示例 示例 以
问题内容: 如何测试一个列表是否包含另一个列表(即它是一个连续的子序列)。假设有一个名为contains的函数: 编辑: 问题答案: 这是我的版本: 正如安德鲁·贾菲(Andrew Jaffe)在他的评论中指出的那样,它返回一个元组(start,end + 1),因为我认为这更像pythonic。它不对任何子列表进行切片,因此应该相当有效。 新手感兴趣的一点是,它使用了for语句上的else子句-
问题内容: 我想为数组中的每个值返回一个布尔值,指示它是否在array中。我猜这应该是一个标准程序,但是我找不到有关如何执行此操作的任何信息。我的尝试如下: 但是,我得到了错误: 我使用的是numpy,因此首选使用numpy或标准Python的解决方案。 问题答案: 我相信您可以使用-
问题内容: 我有两个列表,一个包含 相册,文件对的 列表,另一个仅包含有关一张照片的信息- 相册 (位置0)和 文件 (位置1) 如何查看 照片 列表是否在 照片 列表中?就像字符串一样。 相册 , 文件的 位置无关紧要,因为不会有任何 文件 等于 相册 。 问题答案: 同样喜欢字符串。不仅如此,也是 如此 。也适用于列表中的列表: 对列表的成员资格测试仅迭代列表,并对每个元素使用相等性测试以查看
表的结构是: null 以下是我目前掌握的信息:
问题内容: 具有以下内容的HTML是否有效: 因此,当您提交“ b”时,您只会在内部表单中获得字段。提交“ a”时,您将得到减去“ b”中所有字段的所有字段。 如果不可能,那么针对这种情况有哪些解决方法可用? 问题答案: A. 无效的HTML或XHTML 在正式的W3C XHTML规范的B部分“元素禁止”中指出: 至于较早的[HTML 3.2规范,FORMS元素上的部分指出: “每个表单都必须包含