属性的MEL XPath3表达式

时间:2015-09-28 00:19:27

标签: mule mule-el xpath-3.0

我正在拆分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]')]有效,但我需要根据属性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>

非常感谢任何帮助。

此致 哈

1 个答案:

答案 0 :(得分:0)

xpath3是名称空间感知所以你需要提供它。但您可以使用以下通配符。此外,您需要转义单引号。

xpath3('/*:Row/*:tags[@id=\'1165\']')