无界结构元素中的值计数

时间:2018-06-01 13:32:33

标签: xslt-1.0 xquery

我正在尝试根据1.0版起草一个xquery,它计算了无界结构下元素中值的出现次数。

例如..我收到以下请求作为我的系统的输入,我想计算多少时间,我在OutcomeCode元素中得到FC字,DataDetail和PerEquipment都是无界结构。

在其中寻找您宝贵的建议。根据要求,答案应为3,因为我们在第一个DataDetail事件中获得了2个FC,在最后一个中获得了1个FC。

    <v4:DataDetails xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v4="http://services.xx.net/PP/v4">
   <v4:DataDetail>
      <v4:PerEquipment>
         <v4:OutcomeCode>FC</v4:OutcomeCode>
         <v4:OutcomeDescription>FC Data</v4:OutcomeDescription>
      </v4:PerEquipment>
      <v4:PerEquipment>
         <v4:OutcomeCode>FC</v4:OutcomeCode>
         <v4:OutcomeDescription>FC Data</v4:OutcomeDescription>
      </v4:PerEquipment>
      </v4:DataDetail>
   <v4:DataDetail>
       <v4:PerEquipment>
         <v4:OutcomeCode>OG</v4:OutcomeCode>
         <v4:OutcomeDescription>OG Data</v4:OutcomeDescription>
      </v4:PerEquipment>
      <v4:PerEquipment>
         <v4:OutcomeCode>FC</v4:OutcomeCode>
         <v4:OutcomeDescription>FC Data</v4:OutcomeDescription>
      </v4:PerEquipment>
  </v4:DataDetail>
</v4:DataDetailsResponse>

1 个答案:

答案 0 :(得分:1)

如果您只想评估出现次数,则以下查询应该足够:

count(//*:OutcomeCode[. = 'FC'])

请注意,任何“FC”子字符串都会对结果产生影响。如果你想计算单词,你可以使用XQuery Full Text的'contains text'关键字(前提是你的XQuery处理器提供支持):

count(//*:OutcomeCode[. contains text 'FC'])