A tabela a seguir mostra os métodos Java que podem ser usados para
acessar árvores de elementos e a constante de tipo de campo ESQL equivalente para
cada ponto na árvore.
Acessador Java
de MbMessageAssembly |
Constante do tipo de campo ESQL |
getMessage().getRootElement() |
InputRoot |
getMessage().getRootElement().getLastChild() |
InputBody |
getLocalEnvironment().getRootElement() |
InputLocalEnvironment |
getGlobalEnvironment().getRootElement() |
Ambiente |
getExceptionList().getRootElement() |
InputExceptionList |
Utilize
os métodos a seguir para percorrer uma árvore de mensagens de um elemento do tipo MbElement:
- getParent()
- retorna o pai do elemento atual
- getPreviousSibling()
- retorna o irmão anterior do elemento atual
- getNextSibling()
- retorna o próximo irmão do elemento atual
- getFirstChild()
- retorna o primeiro filho do elemento atual
- getLastChild()
- retorna o último filho do elemento atual
Alternativamente, use
um objeto Document Object Model (DOM) e use a API do DOM para navegar
e manipular os elementos.
MBMessage
fornece os métodos a seguir:
- getDOMDocument()
- obtém um objeto W3C org.w3c.dom.Document para
o corpo da mensagem.
- createDOMDocument()
- obtém um objeto W3C org.w3c.dom.Document para
o corpo da mensagem.
MbElement fornece
o método a seguir:
- getDOMNode()
- obtém um objeto org.w3c.dom.Node do W3C para o elemento de mensagem.
O exemplo a seguir
mostra uma mensagem XML simples e a árvore lógica que seria criada da mensagem. A
mensagem foi enviada utilizando o WebSphere MQ. O diagrama de árvore lógica
também mostra os métodos a serem chamados a fim de navegar na árvore.
<document>
<chapter title='Introduction'>
Some text
</chapter>
</document>

A árvore usada nesse diagrama é aquela que é criada analisando
o exemplo XML anterior.
- A partir da parte Raiz da árvore, chamar getFirstChild() navega para as Propriedades. Também a partir de Raiz, chamar getLastChild() retorna
XML.
- Em Propriedades, a chamada de getParent() retorna Raiz; a chamada
de getNextSibling() retorna MQMD.
- Em MQMD, a chamada de
getPreviousSibling() retorna Propriedades, a chamada de
getParent() retorna Raiz e a chamada de
getNextSibling() retorna XML.
- Em XML, a chamada de
getPreviousSibling() retorna MQMD, a chamada de
getParent() retorna Raiz, a chamada de
getFirstChild() retorna documento e a chamada de
getLastChild() também retorna documento.
- Em documento, a chamada de getParent() retorna XML, a chamada de
getFirstChild() retorna capítulo e a chamada de
getLastChild() também retorna capítulo.
- Em capítulo, a chamada de getParent() retorna documento, a chamada de
getFirstChild() retorna título e a chamada de
getLastChild() retorna o filho que contém os dados de mensagem "Um
texto.".
O código Java a seguir
acessa o elemento de capítulo na árvore lógica para uma mensagem XML
que não contém espaços em branco. O analisador XML retém o espaço em branco na árvore analisada, mas os
analisadores XMLNS e XMLNSC não.
MbElement root = assembly.getMessage().getRootElement();
MbElement chapter = root.getLastChild().getFirstChild().getFirstChild();