我想从消息的XML有效负载中提取一些文本值,以便我可以在jdbc查询中使用它们。
鉴于下面的测试XML文件,我想获取第一本书的作者文本节点的字符串值。
类似的东西:
INSERT INTO books VALUES (#[xpath('/catalog/book[0]/author/text()')])
要测试表达式,我只是使用记录器,但似乎无法正确提取它。
<logger message="#[xpath('/catalog/book[0]/author/text()')]" level="DEBUG" doc:name="Logger"/>
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
</book>
</catalog>
答案 0 :(得分:5)
这是正确的MEL表达式:
#[xpath('/catalog/book[1]/author/text()').text]
注意在XPath中,第一个节点是1而不是0。
答案 1 :(得分:0)