我在我的一个学习代码中遇到了这个XPath:
count($recprv//*[local-name()='provider_email' or local-name()='provider_fax'
or local-name()='provider_phone' or local-name()='provider_phone_ext' ])
我现在很难弄清楚它的含义,我个人认为它说:“在xml文件recprv中,计算包含provider_email或包含provider_fax或包含provider_phone或包含provider_phone_ext的任何元素的数量。< / p>
那么它基本上会通过xml文件recprc并计算所有记录?只是有点困惑。此外,我很想知道计数函数中究竟计算了什么。非常感谢帮助我在这里!
答案 0 :(得分:8)
count($recprv//*
[local-name()='provider_email'
or
local-name()='provider_fax'
or
local-name()='provider_phone'
or
local-name()='provider_phone_ext'
]
)
这意味着:
向我提供变量 $recprv
,中包含的任何树中包含的所有元素的计数 {{3} } (名称空间前缀后面的名称部分,如果存在,或者是整个名称)是 provider_email
,provider_fax
,{{ 1}} 或 provider_phone
。
变量provider_phone_ext
应该包含一个或多个元素(节点集),并且每个这样的元素都是基于父级的树的顶部 - &gt;儿童关系。
答案 1 :(得分:2)
$ recprv是一个变量,因此XPATH作用于变量
中包含的节点集 local-name()函数返回Element名称的一部分而没有命名空间URI,例如它们匹配像<provider_phone />
这样的元素名称以及<xyz:provider_phone />