1
2
3
4
5
6
7
8
9
10
11 package org.mule.util.properties;
12
13 import org.mule.umo.UMOMessage;
14
15 import org.dom4j.Node;
16 import org.dom4j.io.DOMReader;
17
18
19
20
21 public class JDomPropertyExtractor implements PropertyExtractor
22 {
23 public Object getProperty(String name, Object message)
24 {
25 Object payload = message;
26 if (message instanceof UMOMessage)
27 {
28 payload = ((UMOMessage)message).getPayload();
29 }
30 if (payload instanceof org.w3c.dom.Document)
31 {
32 org.w3c.dom.Document x3cDoc = (org.w3c.dom.Document)payload;
33 org.dom4j.Document dom4jDoc = new DOMReader().read(x3cDoc);
34 try
35 {
36 Node node = dom4jDoc.selectSingleNode(name);
37 if (node != null)
38 {
39 return node.getText();
40 }
41 }
42 catch (Exception ignored)
43 {
44
45 }
46 }
47 return null;
48 }
49 }