La tabla siguiente muestra los métodos
Java que puede utilizar para acceder a los
árboles de elementos y la constante de tipo de campo ESQL equivalente
para cada punto del árbol.
Descriptor de acceso Java
de MbMessageAssembly |
Constante de tipo de campo ESQL |
getMessage().getRootElement() |
InputRoot |
getMessage().getRootElement().getLastChild() |
InputBody |
getLocalEnvironment().getRootElement() |
InputLocalEnvironment |
getGlobalEnvironment().getRootElement() |
Environment |
getExceptionList().getRootElement() |
InputExceptionList |
Utilice los métodos siguientes para recorrer un árbol de mensaje
desde un elemento de tipo MbElement:
- getParent()
- devuelve el padre del elemento actual
- getPreviousSibling()
- devuelve el igual anterior del elemento actual
- getNextSibling()
- devuelve el igual siguiente del elemento actual
- getFirstChild()
- devuelve el primer hijo del elemento actual
- getLastChild()
- devuelve el último hijo del elemento actual
De
forma alternativa, utilice un objeto DOM (Modelo de objetos de documento) y utilice la API DOM
para navegar y manipular los elementos.
MBMessage
proporciona los métodos siguientes:
- getDOMDocument()
- obtiene un objeto W3C org.w3c.dom.Document para el cuerpo del mensaje.
- createDOMDocument()
- obtiene un objeto W3C org.w3c.dom.Document para el cuerpo del mensaje.
MbElement proporciona
el método siguiente:
- getDOMNode()
- obtiene un objeto W3C org.w3c.dom.Node para el elemento de
mensaje.
El ejemplo siguiente muestra un mensaje XML simple y el árbol lógico que
se creará a partir del mensaje. El mensaje se ha enviado
utilizando WebSphere MQ. El diagrama de árbol lógico
también muestra los métodos de llamada para navegar por el árbol.
<document>
<chapter title='Introducción'>
Texto
</chapter>
</document>

El árbol que se utiliza en este diagrama es el que se ha creado analizando el ejemplo XML anterior.
- Desde la parte Root (raíz) del árbol, al llamar a getFirstChild() se navega a las propiedades. Asimismo desde Root, la llamada a getLastChild()
devuelve XML.
- Desde Properties, la llamada a
getParent() devuelve Root y la llamada a
getNextSibling() devuelve MQMD.
- Desde MQMD, la llamada
a getPreviousSibling() devuelve Properties, la llamada
a getParent() devuelve Root y la llamada
a getNextSibling() devuelve XML.
- Desde XML, la llamada
a getPreviousSibling() devuelve MQMD, la llamada a
getParent() devuelve Root, la llamada a
getFirstChild() devuelve 'document' (documento) y la
llamada a getLastChild() también devuelve 'document'.
- Desde 'document', la llamada a getParent() devuelve
XML, la llamada a getFirstChild() devuelve 'chapter'
(capítulo) y la llamada a getLastChild() también
devuelve 'chapter'.
- Desde 'chapter', la llamada a getParent() devuelve
'document', la llamada a getFirstChild() devuelve
'title' (título) y la llamada a getLastChild() devuelve
el hijo que contiene los datos del mensaje "Texto.".
El siguiente código
Java
accede al elemento de capítulo del árbol lógico para un mensaje XML
que no contiene espacios en blanco. El
analizador XML retiene los espacios en blanco en el árbol analizado, pero
los analizadores XMLNS y XMLNSC no.
MbElement root = assembly.getMessage().getRootElement();
MbElement chapter = root.getLastChild().getFirstChild().getFirstChild();