【发布时间】:2021-04-22 18:56:51
【问题描述】:
我得到了以下xml;
<output>
<EmployeeList>
<Employee>
<EmployeeInfo>
<Id>253</Id>
<CarrierType>Employee</CarrierType>
<ArrivalDateTime>2021-04-20T15:10:20</ArrivalDateTime>
<ReadOnly>false</ReadOnly>
<Freefield>
<DefinitionId>50012</DefinitionId>
<Name>PersoonType</Name>
<value>2</value>
</Freefield>
<Freefield>
<DefinitionId>50014</DefinitionId>
<Name>Roostercode</Name>
<value>TST04</value>
</Freefield>
<Freefield>
<DefinitionId>50006</DefinitionId>
<Name>Kaart lay-out</Name>
<value>02_Medewerker_MBO</value>
</Freefield>
<Freefield>
<DefinitionId>50007</DefinitionId>
<Name>LoXS Master</Name>
<value>false</value>
</Freefield>
<LastName>Tester4</LastName>
<FirstName>Test</FirstName>
<Gender>Unknown</Gender>
<Language>nl</Language>
<Email>ttester4@work.nl</Email>
</EmployeeInfo>
</Employee>
</EmployeeList>
</output>
注意 Freefield 节点。 我需要一个特定的 Freefield 节点的值,其中 DefinitionId=50014 或 Name=Roostercode。从这个 Freefield 节点我需要这个值;在本例中为“TST04”。
我尝试了以下代码的几种变体来选择值并将其分配给变量(rcode)。到目前为止,这总是会导致某种错误。
<xsl:variable name="rcode" select="/output/EmployeeList/Employee/EmployeeInfo/Freefield/[@Name='Roostercode']/value/text()"/>
任何想法来获得这个特定的价值?
也许我不能直接得到这个值,所以欢迎使用其他方法!
解决方案需要在 xslt 1.0 中
【问题讨论】: