1

3 つのノードがある単純なメッセージ フロー。1 つは、xml 入力を受け取る MQ 入力ノードです。もう 1 つは、MQ 入力から渡されたメッセージを受け取る MQ 出力ノードです。間に trace ノードがあります。トレース ノードは、ファイルにトレースを生成するように構成されています。ファイル内のそのコンテンツであるxmlメッセージ全体をトレースします。連絡先番号のような xml ファイルの単一のタグを追跡したい場合はどうすればよいでしょうか。

すなわち:

<contactDetails>
    <contactName>Acme</contactName>
    <contactNumber>09200209</contactNumber>
</contactDetails>

どのパターンを使用すればよいですか? 試してみ${Body.contactDetails.contactNumber}まし${Environment.contactDetails.contactNumber}たが、出力に null が表示されます。誰でも助けることができますか?

編集:以下はメッセージ全体です:

<?xml version="1.0" encoding="utf-8"?>
<tns:In_Request xmlns:tns="http://www.ibm.lab.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ActionRequest>O</ActionRequest>
    <DateRequest>10/12/2005</DateRequest>
    <customerNumber>1</customerNumber>
    <customerName>ACME Hardware</customerName>
    <customerDetails>
        <customerAddress1>1254 Main St</customerAddress1>
        <customerAddress2>Suite 12</customerAddress2>
        <customerCity>Dime Box</customerCity>
        <customerState>TX</customerState>
        <customerCountry>USA</customerCountry>
        <customerPostalCode>76543</customerPostalCode>
        <customerCreditLimit>1200</customerCreditLimit>
        <customerCreditScore>123</customerCreditScore>
    </customerDetails>
    <contactDetails>
        <contactFirstName>Freddy</contactFirstName>
        <contactLastName>Bloggs</contactLastName>
        <contactPhoneNumber>555-123-6543</contactPhoneNumber>
    </contactDetails>
    <requestDecision>Y</requestDecision>
    <comments>Just a Comment</comments>
    </tns:In_Request>
4

1 に答える 1

0

私は今問題を見ます。参照の本文は、メッセージが解析されるドメインのルート要素を指します。たとえば、メッセージ ドメインをメッセージの入力ノードで XMLNSC に設定した場合は Root.XMLNSC を指すため、メッセージのルート要素ではありません。

メッセージ例から要素 contactPhoneNumber の値をトレースする場合は、次の参照を使用する必要があります: ${Body.*:In_Request.contactDetails.contactPhoneNumber}

したがって、本文の後に、要素へのパス全体を指定する必要があります。*: 部分が必要なのは、メッセージのルート要素が名前空間にあるためです。

于 2015-12-01T19:22:41.167 に答える