2

メッセージの 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>
4

2 に答える 2

5

正しい MEL 式は次のとおりです。

#[xpath('/catalog/book[1]/author/text()').text]

XPath では、最初のノードは 0 ではなく 1 であることに注意してください。

于 2012-10-25T22:03:54.043 に答える
0

Davidの答えは、1つのことを除いてうまくいきました。私にとって、.textは機能しませんでした。.wholeTextを使用する必要がありました。これはおそらく、私の作業プロジェクトのどこかで xerces 実装を使用しているためです。

于 2014-11-04T03:31:57.393 に答える