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.

Von einem JavaCompute-Knoten auf Elemente in einer Nachrichtenbaumstruktur zugreifen

Greifen Sie zum Lesen oder Schreiben auf den Inhalt einer Nachricht zu und verwenden Sie Struktur und Anordnung der Elemente in der Baumstruktur, die der Parser aus dem Eingabebitstrom erstellt.

Navigieren Sie in der Baumstruktur abwärts durch die Beziehungen zwischen über- und untergeordneten Elementen, bis Sie auf das erforderliche Element stoßen.

Die Nachrichtenbaumstruktur wird als Argument der Methode evaluate an einen JavaCompute-Knoten übermittelt. Das Argument ist ein MbMessageAssembly-Objekt. In 'MbMessageAssembly' sind vier Nachrichtenobjekte enthalten:
  • Nachricht
  • Lokale Umgebung
  • Globale Umgebung
  • Ausnahmeliste
Mit Ausnahme der globalen Umgebung sind diese Objekte schreibgeschützt. Wenn Sie versuchen, in diese schreibgeschützten Objekte zu schreiben, wird die Ausnahmebedingung 'MbReadOnlyException' ausgelöst.

Alternativ dazu verwenden Sie JAXB-Java™-Objekte mit getter- und setter-Methoden; weitere Informationen finden Sie im Abschnitt JAXB mit einem JavaCompute-Knoten verwenden.

Dieser Abschnitt enthält die folgenden Informationen zum Zugriff auf Elemente in einer Nachrichtenbaumstruktur:

Elementbaumstruktur durchlaufen

In der folgenden Tabelle sind die Java-Methoden, mit denen auf die Elementbaumstrukturen zugegriffen werden kann, sowie die entsprechenden ESQL-Feldtypkonstanten für jeden Punkt in der Baumstruktur aufgeführt.
Java-Zugriffsmechanismus aus MbMessageAssembly ESQL-Feldtypkonstante
getMessage().getRootElement() InputRoot
getMessage().getRootElement().getLastChild() InputBody
getLocalEnvironment().getRootElement() InputLocalEnvironment
getGlobalEnvironment().getRootElement() Umgebung
getExceptionList().getRootElement() InputExceptionList
Mit den folgenden Methoden können Sie eine Nachrichtenbaumstruktur von einem Element des Typs 'MbElement' durchlaufen:
getParent()
gibt das übergeordnete Element des aktuellen Elements zurück
getPreviousSibling()
gibt das vorhergehende gleichgeordnete Element des aktuellen Elements zurück
getNextSibling()
gibt das nächste gleichgeordnete Element des aktuellen Elements zurück
getFirstChild()
gibt das erste untergeordnete Element des aktuellen Elements zurück
getLastChild()
gibt das letzte untergeordnete Element des aktuellen Elements zurück

Alternativ dazu verwenden Sie ein Document Object Model-Objekt (DOM-Objekt) und die DOM-API, um zu den Elementen zu navigieren und diese zu bearbeiten.

MBMessage stellt folgende Methoden bereit:
getDOMDocument()
ruft ein W3C-Objekt org.w3c.dom.Document für den Nachrichtentext ab.
createDOMDocument()
ruft ein W3C-Objekt org.w3c.dom.Document für den Nachrichtentext ab.
MbElement stellt die folgende Methode bereit:
getDOMNode()
ruft ein W3C-Objekt org.w3c.dom.Node für das Nachrichtenelement ab.

Im folgenden Beispiel wird eine einfache XML-Nachricht und die logische Baumstruktur gezeigt, die aus der Nachricht erstellt würde. Die Nachricht wurde mithilfe von WebSphere MQ gesendet. In der logischen Baumstruktur werden auch die Methoden gezeigt, die zum Navigieren in der Baumstruktur aufgerufen werden können.

<document>
  <chapter title='Einleitung'>
    Text
  </chapter>
</document>

Im Diagramm werden die Methoden gezeigt, die Sie für die Navigation in einer Nachrichtenbaumstruktur aufrufen können. Diese werden im umgebenden Text beschrieben.

Die in diesem Diagramm verwendete Baumstruktur wurde durch die Syntaxanalyse im vorigen XML-Beispiel erstellt.
  • Durch den Aufruf von 'getFirstChild()' im Stammteil der Baumstruktur wird zu den Eigenschaften navigiert. Durch den Aufruf von 'getLastChild()' im Stammteil wird XML zurückgegeben.
  • Durch Aufruf von 'getParent()' in den Eigenschaften wird das Stammverzeichnis, durch Aufruf von 'getNextSibling()' wird MQMD zurückgegeben.
  • Durch Aufruf von 'getPreviousSibling()' in MQMD werden Eigenschaften, durch Aufruf von 'getParent()' das Stammelement und durch Aufruf von 'getNextSibling()' wird XML zurückgegeben.
  • Durch Aufruf von 'getPreviousSibling()' in XML wird MQMD, durch Aufruf von 'getParent()' wird ein Stammelement, durch Aufruf von 'getFirstChild()' wird ein Dokument, und durch Aufruf von 'getLastChild()' wird ebenfalls ein Dokument zurückgegeben.
  • Durch Aufruf von 'getParent()' im Dokument wird XML, durch Aufruf von 'getFirstChild()' wird ein Kapitel und durch Aufruf von 'getLastChild()' wird ebenfalls ein Kapitel zurückgegeben.
  • Durch Aufruf von 'getParent()' im Kapitel wird ein Dokument, durch Aufruf von 'getFirstChild()' wird ein Titel und durch Aufruf von 'getLastChild()' wird das untergeordnete Element mit den Nachrichtendaten 'Text' zurückgegeben..
Mit folgendem Java-Code wird auf das Kapitelelement in der logischen Baumstruktur für eine XML-Nachricht zugegriffen, die keine Leerzeichen enthält: Der XML-Parser behält Leerzeichen in der analysierten Baumstruktur bei, der XMLNS- und XMLNSC-Parser dagegen nicht.
MbElement root = assembly.getMessage().getRootElement();
MbElement chapter = root.getLastChild().getFirstChild().getFirstChild();

Auf Informationen über ein Element zugreifen

Verwenden Sie die nachfolgenden Methoden zum Zurückgeben von Informationen zum referenzierten Element:
getName()
Gibt den Elementnamen als 'java.lang.String' zurück.
getValue()
Gibt den Elementwert zurück.
getType()
Gibt einen der folgenden generischen Typen zurück:
  • NAME: Ein Element diesen Typs hat einen Namen, aber keinen Wert.
  • VALUE: Ein Element diesen Typs hat einen Wert, aber keinen Namen.
  • NAME/VALUE: Ein Element diesen Typs hat einen Wert und einen Namen.
getSpecificType()
Legt den Parser-spezifischen Typ des Elements fest.
getNamespace()
Gibt die Namespace-URI dieses Elements zurück.
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:20:10


TaskthemaTaskthema | Version 8.0.0.5 | ac30330_