0

XML ファイルを読み込んでいます。別の親タグ、つまり Ordernumber で複数回発生する XML パラメータの 1 つを変更したいと考えています。次に、更新された XML を Java 計算ノードから ESQL 計算ノードに送信します。どんな助けでも大歓迎です。

ファイルが読み取られ、単一のタグを取得しましたが、xml スキーマには、値を変更する必要がある「Ordernumber」を含むさまざまな親タグがあります。

私のコードは「/」です

            synchronized (this) {

                 dom = db.parse(Constant.USER_DIR+ Constant.APP_ROOT_DIR +  
                        + Constant.APP_DIR + "/" 
                        + Constant.CONFIG_DIR+ "/" 
                        + Constant.FILE_NAME);

            }

            Element rootElement = dom.getDocumentElement();
            //Code = new Long[1];  
            NodeList nl = rootElement.getElementsByTagName("Ordernumber");
            if (nl != null && nl.getLength() > 0) {
                for (int i = 0; i < nl.getLength(); i++) {

                    // get the CallSystem element

                    Element el = (Element) nl.item(i);

    }       
            }

また、次のように Outmessage のルート要素を作成することはわかっていますが、xml 全体をファイルから outmessage に入れる方法がわかりません。助けてください。

                message = new MbMessage();
                root = message.getRootElement();
                xmlRoot = root.createElementAsLastChild(MbXMLNSC.PARSER_NAME);
4

1 に答える 1

0

1)コードを含むファイルを読み取らないでください(同期ブロック)。むしろ、ファイル ノードを使用してください。ポーリングされたディレクトリーからファイルを読み取ってメッセージ・フローを開始する場合は、File Input ノードを使用します。メッセージ フローの途中でファイルを読み取りたい場合は、File Read ノードを使用します。いずれの場合も、ノードの[入力メッセージの解析] タブの [メッセージ ドメイン] プロパティを XMLNSC に設定します。これにより、ファイルの内容が XML として解析されます。

2) ファイル ノードの Out ターミナルを Java Compute ノード (JCN) の In ターミナルに接続します。

3) JCN 内で、XPath を使用して「Ordernumber」という名前の要素のすべてのインスタンスを選択します。そうするために、XPath ステートメントはおそらく子孫軸を使用します。このリファレンスを参照してください。製品の API の使用を開始する方法の例については、このリンクを参照してください。MbXPath の Javadoc は、{インストール パス}/docs/JavaAPI/index.html にあります。

4) 後続の ESQL Compute ノードで何が起こるかについては言及していません。ただし、以前の JCN では、ESQL 計算ノードを排除してそれを行うことができる可能性が高いことに注意してください。

これらの指針はあなたを正しい方向に導くべきだと思います。

于 2015-06-18T16:20:59.977 に答える