如果我有这个XML:
<Events>
<Properties>
<Property Descriptor="100">1377349460.298</Property>
<Property Descriptor="101">1</Property>
<Property Descriptor="24000">C1234Test1</Property>
</Properties>
<Properties>
<Property Descriptor="100">1377349462.298</Property>
<Property Descriptor="101">1</Property>
<Property Descriptor="24000">C4321Test2</Property>
</Properties>
<Properties>
<Property Descriptor="100">1377349462.300</Property>
<Property Descriptor="101">1</Property>
<Property Descriptor="24000">C1234Test1</Property>
</Properties>
</Events>
如果仅考虑此属性的前5个字符,如何仅针对每个Descriptor="100"
的第一次出现选择Descriptor="24000"
?例如,仅选择1377349460.298 [用于C1234]和1377349462.298 [用于C4321]?
Xpath 2.0
我不知道如何尝试......
提前致谢!
答案 0 :(得分:2)
找到所有匹配的标识符,然后为每个标识符找到第一个结果。
for $id in distinct-values(//Property[@Descriptor=24000]/substring(., 1, 4))
return
//Properties[Property[@Descriptor=24000 and starts-with(., $id)]][1]
/Property[@Descriptor=100]