找不到解决非常简单情况的示例。 需要多个Xpath!=属性(不相等)排除表达式的适当模式
所需的草稿代码如下:
<script>
function updateImage() {
obj = document.imagename;
obj.src = obj.src + "?" + Math.random();
setTimeout("updateImage()",2000);
}
</script>
<body onload="updateImage();">
<?php
$dirname = "thumbnails/";
$images = glob($dirname."/*.png");
foreach($images as $thumbs) {
echo "<img name=imagename src=".$thumbs."?t=".time().">";
}
?>
</body>
问题-2:输出相同结果可能是这种表达的另一种方式吗?
答案 0 :(得分:0)
要复制列表中包含的属性以外的所有属性,使用 identity transform 模板可能会很方便:
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
并添加一个例外:
<xsl:template match="@attr-1 | @attr-2 | @attr-3"/>
隐藏您要忽略的属性。
否则,您需要变得冗长:
<xsl:copy-of select="@*[not(name() ='attr-1' or name() ='attr-2' or name() ='attr-3')]"/>
请注意使用not(a=b)
而不是a!=b
。
在XSLT 2.0中,您可以改为使用except
运算符:
<xsl:copy-of select="@* except (@attr-1, @attr-2, @attr-3, @attr-4)"/>
答案 1 :(得分:0)
您的问题的直接答案是not(name() = ('attr-1', 'attr-2', 'attr-3'))
。但是,当您按名称有条件地处理事物时,在XSLT中通常有比对name()
函数的结果进行字符串比较的更好的方法。