【发布时间】:2019-08-22 05:25:14
【问题描述】:
我有一个简单的要求...我有一个 xml 文件:-
<Service>
<Name>Abcd</Name>
<Age>28</Age>
</Service>
现在我的要求是使用 XPATH 或 MEL 显示节点名称... 到目前为止,我尝试了各种 XPATH 表达式,如下所示:-
<flow name="Flow1WManager" doc:name="newFlow">
<file:inbound-endpoint responseTimeout="10000" connector-ref="File_Input" doc:name="File" path="E:\backup\test">
<file:filename-regex-filter pattern="aa.xml" caseSensitive="false"/>
</file:inbound-endpoint>
<logger message="NodeName1 : #[xpath-node://Service/*[1]/node()]" level="INFO" doc:name="Logger" />
<logger message="NodeName2 : #[xpath-node://.[xpath:local-name()='Service']/*/node()]" level="INFO" doc:name="Logger" />
<logger message="NodeName3 : #[xpath-node://.[xpath:local-name()='Service']/.[xpath:local-name()]/node()]" level="INFO" doc:name="Logger" />
</flow>
但我在控制台中得到关注:-
INFO 2014-08-14 23:03:28,915 [[XPATHWithLocal-name].Flow1WManager.stage1.02] org.mule.api.processor.LoggerMessageProcessor: NodeName1 : org.dom4j.tree.DefaultText@5fffd6fd [Text: "Abcd"]
INFO 2014-08-14 23:03:28,921 [[XPATHWithLocal-name].Flow1WManager.stage1.02] org.mule.api.processor.LoggerMessageProcessor: NodeName2 : [org.dom4j.tree.DefaultText@5fffd6fd [Text: "Abcd"], org.dom4j.tree.DefaultText@1bb3db1b [Text: "28"]]
INFO 2014-08-14 23:03:28,923 [[XPATHWithLocal-name].Flow1WManager.stage1.02] org.mule.api.processor.LoggerMessageProcessor: NodeName3 : [org.dom4j.tree.DefaultText@1a1b4f86 [Text: "
"], org.dom4j.tree.DefaultDocument@1123b146 [Document: name null], org.dom4j.tree.DefaultText@157bad48 [Text: "
"], org.dom4j.tree.DefaultDocument@3e4b7374 [Document: name null], org.dom4j.tree.DefaultText@3cf5d7d2 [Text: "
"]]
我使用了local-name XPath function ..但无法获取节点名称..我错过了什么..请帮助
【问题讨论】:
-
使用 MEL 代替旧的和已弃用的
xpath-node表达式解析器,请参阅:mulesoft.org/documentation/display/current/… 这将更容易解决问题。
标签: xml xpath mule mule-studio mule-el