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.
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

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>

In diesem Diagramm werden die Methoden gezeigt, die Sie für die Navigation in einer Nachrichtenbaumstruktur aufrufen können. Die hier verwendete Baumstruktur wurde bei der Syntaxanalyse des XML-Beispiels in diesem Abschnitt 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.
Zugehörige Tasks
Java schreiben
Zugehörige Verweise
JavaCompute-Knoten
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:28:29

ac30330_