xpath - 如何在 BizTalk 形状中修复 xpath 函数 min()“作为无效令牌”?
问题描述
我在 BizTalk 表达式形状中有一个 Xpath 代码,它返回此错误:
'min(/ [local-name()='EmployeeUDM_Response' 和 namespace-uri()=' http://Securitas/ESB/Schemas/v2/EmployeeUDM ']/ [local-name()='Return']/ [local-name()='Employee']/ [local-name()='Contracts']/ [local-name()='Contract']/ [local-name()='EmployementStartDate']/xs: dateTime(.))' 的令牌无效。
我之前多次收到此错误,但这是因为我放了一条错误的路径
Xpath 代码:
xpath("min(/*[local-name()='EmployeeUDM_Response' and namespace-uri()='http://Securitas/ESB/Schemas/v2/EmployeeUDM']/*[local-name()='Return']/*[local-name()='Employee']/*[local-name()='Contracts']/*[local-name()='Contract']/*[local-name()='EmployementStartDate']/xs:dateTime(.))")
XML 文件:
- <Employee date="date_0" rostarproject="rostarproject_1" xmlns:ns0="http://Securitas.ESB.HR.EmployeeUDMToRostar.MDSRequest_Schema">
<UPN>UPN_0</UPN>
<SAMAccountName>SAMAccountName_0</SAMAccountName>
<Number>Number_0</Number>
<SagaNumber>SagaNumber_0</SagaNumber>
<SurNameFull>SurNameFull_0</SurNameFull>
<FirstName>FirstName_0</FirstName>
<GivenName>GivenName_0</GivenName>
<Gender>Gender_0</Gender>
<DateOfBirth>DateOfBirth_0</DateOfBirth>
<EmailPrivate>EmailPrivate_0</EmailPrivate>
<PhoneMobilePrivate>PhoneMobilePrivate_0</PhoneMobilePrivate>
<PhonePrivate>PhonePrivate_0</PhonePrivate>
<EmployementStartDate>EmployementStartDate_0</EmployementStartDate>
<EmployementEndDate>EmployementEndDate_0</EmployementEndDate>
- <Contracts>
- <Contract>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<Type>Type_0</Type>
<DissimelarCAO>DissimelarCAO_0</DissimelarCAO>
<PhaseID>PhaseID_0</PhaseID>
<PB_CAO>PB_CAO_0</PB_CAO>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<Type>Type_0</Type>
<DissimelarCAO>DissimelarCAO_0</DissimelarCAO>
<PhaseID>PhaseID_0</PhaseID>
<PB_CAO>PB_CAO_0</PB_CAO>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<Type>Type_0</Type>
<DissimelarCAO>DissimelarCAO_0</DissimelarCAO>
<PhaseID>PhaseID_0</PhaseID>
<PB_CAO>PB_CAO_0</PB_CAO>
</Contract>
</Contracts>
- <Functions>
- <Function>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<Position>Position_0</Position>
<CostCenterCode>CostCenterCode_0</CostCenterCode>
<CostCenter>CostCenter_0</CostCenter>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<Position>Position_0</Position>
<CostCenterCode>CostCenterCode_0</CostCenterCode>
<CostCenter>CostCenter_0</CostCenter>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<Position>Position_0</Position>
<CostCenterCode>CostCenterCode_0</CostCenterCode>
<CostCenter>CostCenter_0</CostCenter>
</Function>
</Functions>
- <Adresses>
- <Adress>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<StreetNumber>StreetNumber_0</StreetNumber>
<StreetNumberAddition>StreetNumberAddition_0</StreetNumberAddition>
<Street>Street_0</Street>
<ZipCode>ZipCode_0</ZipCode>
<City>City_0</City>
<Country>Country_0</Country>
<Type>Type_0</Type>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<StreetNumber>StreetNumber_0</StreetNumber>
<StreetNumberAddition>StreetNumberAddition_0</StreetNumberAddition>
<Street>Street_0</Street>
<ZipCode>ZipCode_0</ZipCode>
<City>City_0</City>
<Country>Country_0</Country>
<Type>Type_0</Type>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<StreetNumber>StreetNumber_0</StreetNumber>
<StreetNumberAddition>StreetNumberAddition_0</StreetNumberAddition>
<Street>Street_0</Street>
<ZipCode>ZipCode_0</ZipCode>
<City>City_0</City>
<Country>Country_0</Country>
<Type>Type_0</Type>
</Adress>
</Adresses>
- <Wages>
- <Wage>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<DissimelarZipCode>DissimelarZipCode_0</DissimelarZipCode>
<MAXKM>MAXKM_0</MAXKM>
<RightTravelHours>RightTravelHours_0</RightTravelHours>
<RightTravelExpense>RightTravelExpense_0</RightTravelExpense>
<RightAdditions>RightAdditions_0</RightAdditions>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<DissimelarZipCode>DissimelarZipCode_0</DissimelarZipCode>
<MAXKM>MAXKM_0</MAXKM>
<RightTravelHours>RightTravelHours_0</RightTravelHours>
<RightTravelExpense>RightTravelExpense_0</RightTravelExpense>
<RightAdditions>RightAdditions_0</RightAdditions>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<DissimelarZipCode>DissimelarZipCode_0</DissimelarZipCode>
<MAXKM>MAXKM_0</MAXKM>
<RightTravelHours>RightTravelHours_0</RightTravelHours>
<RightTravelExpense>RightTravelExpense_0</RightTravelExpense>
<RightAdditions>RightAdditions_0</RightAdditions>
</Wage>
</Wages>
- <Roosters>
- <Rooster>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<WeekAmountOfHours>WeekAmountOfHours_0</WeekAmountOfHours>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<WeekAmountOfHours>WeekAmountOfHours_0</WeekAmountOfHours>
<StartDate>StartDate_0</StartDate>
<EndDate>EndDate_0</EndDate>
<WeekAmountOfHours>WeekAmountOfHours_0</WeekAmountOfHours>
</Rooster>
</Roosters>
</ns0:Employee>
我期望 XML 的输出具有最旧的“EmployementStartDate”
解决方案
min()
在 XPath 2.0 中可用,但在 XPath 1.0 中不可用(尽管它可能在 Biztalk 中可用?)
你需要改变/[local-name()='x']
到/*[local-name()='x']
任何地方。
该构造XXX/xs:date-time(.)
还需要 XPath 2.0。
推荐阅读
- c# - C# Byte[Hex] 数组到字符串 - 无转换
- permissions - 如何检查我的控制器中的权限
- google-sheets - 谷歌表格查找行并获取最后一个值
- rrdtool - “rrdtool graph”命令执行没有错误,但没有创建文件
- recursion - c中的回溯实现(不使用任何数据结构)
- java - 如何从企业网络内部访问 Camunda Cloud
- jquery - 表单提交时将输入值存储到会话存储中
- sql - 查询数据到一行
- python - Workers = List[str] 是什么意思?如何添加字符串?
- redis - 此 Redis 客户端异常是否表示网络问题?