属性的 MEL XPath3 表达式
MEL XPath3 expression for attribute
我正在拆分一个 xml 文档,下面是一个示例
<Row>
<tags id="1165" name="Code_Name">pqr</tags>
<tags id="1102" name="Source_Name">xxx</tags>
<tags id="1176" name="Code_Value">12_M</tags>
<tags id="1177" name="Code_Value_Description">Annual</tags>
<tags id="1148" name="System_Control">R</tags>
<tagi id="1169" name="Code_Instance">10278</tagi>
<tags id="10494" name="Has_History"/>
<tags id="10495" name="Obsolete"/>
<tagi id="1179" name="Code_Value_Instance">1545</tagi>
<tagi id="1168" name="Source_Number">4</tagi>
<tags id="1106" name="Update_Date">20150821</tags>
<tags id="944" name="Update_Source">abc</tags>
</Row>
我需要提取 id 1165 的值。我正在尝试 MEL XPath3 表达式并出现错误。
#[xpath3('/Row/tags/@id='1165'')]
我知道 #[xpath3('/Row/tags[1]')]
有效,但我需要 select 基于属性 ID。
流程片段如下。
<foreach collection="xpath3('/soapenv:Envelope/soapenv:Body/cmn:Response/Report/Level/Tab/*', payload, 'NODESET')" doc:name="For Each">
<mulexml:dom-to-xml-transformer doc:name="DOM to XML"/>
<logger message="PL3 #[xpath3('/Row/tags/@id='1165'')] #[xpath3('/Row/tags[1]')]" level="INFO" doc:name="Logger"/>
</foreach>
如有任何帮助,我们将不胜感激。
此致,
哈里
xpath3 是命名空间感知的,因此您需要提供它。但是您可以使用通配符,如下所示。此外,您需要对单引号进行转义。
xpath3('/*:Row/*:tags[@id=\'1165\']')
我正在拆分一个 xml 文档,下面是一个示例
<Row>
<tags id="1165" name="Code_Name">pqr</tags>
<tags id="1102" name="Source_Name">xxx</tags>
<tags id="1176" name="Code_Value">12_M</tags>
<tags id="1177" name="Code_Value_Description">Annual</tags>
<tags id="1148" name="System_Control">R</tags>
<tagi id="1169" name="Code_Instance">10278</tagi>
<tags id="10494" name="Has_History"/>
<tags id="10495" name="Obsolete"/>
<tagi id="1179" name="Code_Value_Instance">1545</tagi>
<tagi id="1168" name="Source_Number">4</tagi>
<tags id="1106" name="Update_Date">20150821</tags>
<tags id="944" name="Update_Source">abc</tags>
</Row>
我需要提取 id 1165 的值。我正在尝试 MEL XPath3 表达式并出现错误。
#[xpath3('/Row/tags/@id='1165'')]
我知道 #[xpath3('/Row/tags[1]')]
有效,但我需要 select 基于属性 ID。
流程片段如下。
<foreach collection="xpath3('/soapenv:Envelope/soapenv:Body/cmn:Response/Report/Level/Tab/*', payload, 'NODESET')" doc:name="For Each">
<mulexml:dom-to-xml-transformer doc:name="DOM to XML"/>
<logger message="PL3 #[xpath3('/Row/tags/@id='1165'')] #[xpath3('/Row/tags[1]')]" level="INFO" doc:name="Logger"/>
</foreach>
如有任何帮助,我们将不胜感激。
此致, 哈里
xpath3 是命名空间感知的,因此您需要提供它。但是您可以使用通配符,如下所示。此外,您需要对单引号进行转义。
xpath3('/*:Row/*:tags[@id=\'1165\']')