我正在尝试使用下面的XPath表达式对我的 XML文档进行不区分大小写的搜索.显然,我错了,因为结果不同.希望有人在这里可以指出我的错误? 我试图计算 Sect下的所有Obj元素.其中 Header价值
我试图计算< 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,而不是在其中任何一个中查找匹配.