Xpath 为什么在非原子化序列上不同的值不能产生不同的值

Xpath 为什么在非原子化序列上不同的值不能产生不同的值,xpath,distinct-values,Xpath,Distinct Values,为什么 (<benefitStartDate>20170101</benefitStartDate>,<benefitEndDate>20170301</benefitEndDate>, <benefitStartDate>20170101</benefitStartDate>,<benefitEndDate>20170501</benefitEndDate>)/distinct-values(.)

为什么

(<benefitStartDate>20170101</benefitStartDate>,<benefitEndDate>20170301</benefitEndDate>,
<benefitStartDate>20170101</benefitStartDate>,<benefitEndDate>20170501</benefitEndDate>)/distinct-values(.)
(2017010120170301,
2017010120170501)/不同的值(.)
收益率20170101 20170301 20170101 20170501(即未消除重复)

但将其应用于序列的原子化版本

不同值((201707012017030120117070120170501))
收益率

20170701 20170301 20170501(
(
  <benefitStartDate>20170101</benefitStartDate>,<benefitEndDate>20170301</benefitEndDate>,
  <benefitStartDate>20170101</benefitStartDate>,<benefitEndDate>20170501</benefitEndDate>
)/distinct-values(.)
20170101,20170301, 20170101,20170501 )/不同的值(.) 不同于:

distinct-values(
  <benefitStartDate>20170101</benefitStartDate>,<benefitEndDate>20170301</benefitEndDate>,
  <benefitStartDate>20170101</benefitStartDate>,<benefitEndDate>20170501</benefitEndDate>
)
不同的值(
20170101,20170301,
20170101,20170501
)
后者返回元素序列的不同值

您的代码为这些元素中的每一个返回不同的值,就像调用:

(
  distinct-values(<benefitStartDate>20170101</benefitStartDate>),
  distinct-values(<benefitEndDate>20170301</benefitEndDate>),
  distinct-values(<benefitStartDate>20170101</benefitStartDate>),
  distinct-values(<benefitEndDate>20170501</benefitEndDate>)
)
(
不同值(20170101),
不同值(20170301),
不同值(20170101),
不同值(20170501)
)
返回预期结果的另一个变量是:

(
  <benefitStartDate>20170101</benefitStartDate>,<benefitEndDate>20170301</benefitEndDate>,
  <benefitStartDate>20170101</benefitStartDate>,<benefitEndDate>20170501</benefitEndDate>
) => distinct-values()
(
20170101,20170301,
20170101,20170501
)=>distinct-values()
最好的


Michael

我知道解决方案是在应用不同的值之前雾化序列。我的问题是为什么我必须首先这样做。=>与原子化无关,您没有将序列传递给不同的值(.)