重写XPATH表达式否定而不使用NOT?

时间:2019-01-25 23:15:21

标签: xslt xpath

我想允许func2上的<applic>,但不允许<table>的后代。我在将XPATH写入导入数据库的文本文件中。由于某种原因,数据库将表达式中带有table的部分或全部XPATH标记为无效。有没有写not的内容的方法? (我使用在线XPATH检查器/验证器进行了测试,该测试按预期工作。)

not

//ancestor::table//applic/not(parent::table)

首先<table> <applic>table applic <assert displayclass="assert displayclass"/> <evaluate displayclass="eval displayclass"/> </applic> <tgroup> <thead> <row> <entry>entry<applic>entry applic</applic><ftnote/></entry> </row> </thead> </tgroup> </table> 正常,不允许applic中的applic

同时包含两个响应可以解决问题,并使我能够修复其他无效路径:

entry

1 个答案:

答案 0 :(得分:0)

您可以选择所有applic元素,它们是table元素的直接子元素,并具有以下表达式:

//applic[parent::table]

相反,ancestor::轴将选择所有具有applic祖先的table元素。在您的情况下,这将选择两个节点。