WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Mit dem .NETCompute über Elemente iterieren

Verwenden Sie die Methode Where zur sequenziellen Iteration über die Elemente einer Nachrichtenbaumstruktur.

Mit dem Ergebnisarray in einer foreach()-Anweisung können Sie über die untergeordneten Elemente eines NBElements iterieren. Die foreach()-Schleife ermöglicht dem Entwickler, abwechselnd für jedes NBElement Maßnahmen zu ergreifen. Im folgenden Beispiel wird veranschaulicht, wie mit diesem Verfahren eine Ausgabenachricht erstellt werden kann, die der Eingabenachricht in der Form ähnelt. Betrachten Sie eine einfache XML-Eingabenachricht:
<MessageEnvelope>
		<Element>1</Element>
		<Element>2</Element>
		<Element>3</Element>
</MessageEnvelope>
Der folgende C#-Code in einem .NETCompute-Knoten iteriert über die Elemente:
        public override void Evaluate(NBMessageAssembly inputAssembly)
        {
            NBOutputTerminal outTerminal = OutputTerminal("out");

            NBMessage inputMessage = inputAssembly.Message;

            // Erstellen Sie eine neue leere Nachricht, die auf jeden Fall nach der Verwendung verworfen werden muss
            using (NBMessage outputMessage = new NBMessage())
            {
                NBMessageAssembly outAssembly = new NBMessageAssembly(inputAssembly, outputMessage);
                NBElement inputRoot = inputMessage.RootElement;
                NBElement outputRoot = outputMessage.RootElement;

                // Kopieren Sie optional Nachrichtenheader, entfernen Sie diese, falls sie nicht benötigt werden
                CopyMessageHeaders(inputRoot, outputRoot);

                #region UserCode
                // Fügen Sie den Benutzercode in diesem Bereich hinzu, um eine neue Ausgabenachricht zu erstellen
                outputRoot.CreateLastChildUsingNewParser("XMLNSC");
                outputRoot["XMLNSC"].CreateLastChild("OutputMessageEnvelope");
                string notargetnamespace = "";
                NBElement env = inputRoot["XMLNSC"]["MessageEnvelope"];
                var elementlist = env.Where(t => t.Name == "Element");                
                foreach (NBElement element in elementlist)
                {
                    int currentvalue = (Int32)element;                   
                    NBElement outelement = outputRoot["XMLNSC"]["OutputMessageEnvelope"].CreateLastChild(notargetnamespace, "OutElement");
                    outelement.SetValue("After adding 1 to input value we get " + (currentvalue + 1).ToString());
                }
                #endregion UserCode

                // Ändern Sie Folgendes, wenn die Nachricht nicht an das Ausgabeterminal weitergegeben wird
                outTerminal.Propagate(outAssembly);
            }
        }
Die Ausgabe ist eine XML-Nachricht:
<OutputMessageEnvelope>
		<OutElement>After adding 1 to input value we get value 2</OutElement>
		<OutElement>After adding 1 to input value we get value 3</OutElement>
		<OutElement>After adding 1 to input value we get value 4</OutElement>
</OutputMessageEnvelope>
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:22:41


TaskthemaTaskthema | Version 8.0.0.5 | bc34221_