gpt4 book ai didi

xslt - 查找具有特定名称且不具有特定属性的在前同级

转载 作者:行者123 更新时间:2023-12-03 17:38:15 25 4
gpt4 key购买 nike

我有一个很大的测试来检查事物的顺序,并且我想忽略属性baz等于attriy元素,这是我尝试过的方法,但是似乎没有用正确地。无论属性如何,它似乎都忽略了baz

内容:

jd:foo|jd:bar|jd:baz[@attri != 'y']|jd:bam


测试:

        (name()='foo' and 
(preceding-sibling::*[local-name()='bar']
or preceding-sibling::*[local-name()='baz' and @attri != 'y']
or preceding-sibling::*[local-name()='bam']
)
) or
(name()='bar' and
(preceding-sibling::*[local-name()='baz' and @attri != 'y']
or preceding-sibling::*[local-name()='bam']
)
) or
(name()='baz' and
(preceding-sibling::*[local-name()='bam']
)
)

最佳答案

您的上下文不仅排除包含等于baz@attriy元素,还排除不包含属性的baz元素。这个:

jd:baz[@attri != 'y']


baz必须具有 @attri属性,并且也不能为 y。因此,诸如 <baz>...</baz>之类的节点将不属于上下文,因为它不包含该属性。这将包括在上下文元素中,例如 <baz attri='z'>

如果只希望排除 <baz attri='y'>元素(而不排除不具有该属性的元素),则必须使用:

baz[not(@attri = 'y')]


选择所有具有 baz@attri='y'元素并取反设置。这将包括不具有 @attri属性的元素。

如果要考虑没有属性的元素,则测试也是如此。

关于xslt - 查找具有特定名称且不具有特定属性的在前同级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24001944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com