xml – 不区分大小写的搜索 – xpath
发布时间:2020-12-16 22:41:59 所属栏目:百科 来源:网络整理
导读:我正在尝试使用下面的XPath表达式对我的 XML文档进行不区分大小写的搜索.显然,我错了,因为结果不同.希望有人在这里可以指出我的错误? 我试图计算 Sect下的所有Obj元素.其中 Header价值是主要目标.为了获得计数,我使用下面的表达式,它很有用. 表达式 – 不区
我正在尝试使用下面的XPath表达式对我的
XML文档进行不区分大小写的搜索.显然,我错了,因为结果不同.希望有人在这里可以指出我的错误?
我试图计算< Sect>下的所有Obj元素.其中< Header>价值是主要目标.为了获得计数,我使用下面的表达式,它很有用. 表达式 – 不区分大小写:返回31个节点. ("count(//TaggedPDF-doc//Part//Sect//Sect//Sect[contains(Header,"Primary objectives")]//OBJ)"); 但我想让“主要目标”不区分大小写.所以,我试图使用Translate. 返回0个节点. $count = $dom->findvalue("count(//TaggedPDF-doc//Part//Sect//Sect//Sect[contains(H4,translate("Primary Objectives",'ABCDEFGHJIKLMNOPQRSTUVWXYZ','abcdefghjiklmnopqrstuvwxyz') ) ]//OBJ)"); 希望有人在这里可以指出我错在哪里. 提前致谢, 解决方法
首先,您可能不需要所有这些//步骤//允许在任一侧命名的节点之间的任意数量级别的元素 – 使用单个/步骤枚举来自根的完整路径,或者只是使用一个//搜索整棵树.
其次,你需要将你正在比较的Header值缩减,而不是你要比较的固定字符串.尝试更像的东西 count(//Sect[ Header[ contains( translate( .,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'primary objectives' ) ] ]//Obj) 这将为您提供在Sect内任何位置发生的Obj元素的计数,该Sect包含任何包含“主要目标”的Header子项(不区分大小写).这与稍有不同 count(//Sect[contains(translate(Header,.... 在Sect包含多个Header的情况下 – 后者只检查每个Sect中的第一个Header,而不是在其中任何一个中查找匹配. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |