我正在使用XPath处理XML文档,其中特定元素的大小写可能因文档而异(请不要问;我不控制文档生成)。
为了处理这个问题,我的一个XPath查询如下所示:
//group[group='Foo']/subGroup[sub='Bar' or Sub='Bar'] | //group[group='Foo']/SubGroup[sub='Bar' or Sub='Bar']
请注意,subGroup
元素可以subGroup
或SubGroup
出现,sub
元素可以显示为sub
或{{1} }。
有没有办法缩短这个XPath?
我有多个与此类似但有效复制或展开Sub
部分的查询(例如sub
。[a='b' and (sub='Bar' or Sub='Bar')]
和subGroup
差异以及{{1即使SubGroup
部分不同,大多数查询都会出现{}和sub
个差异。
答案 0 :(得分:0)
//group[group='Foo']/*[self::subGroup | self::SubGroup][sub='Bar' or Sub='Bar']
其他变体将依赖于translate()
和name()
,例如his comment中的Marvin Smit概述。