La clase NBElement representa un elemento individual analizado en el árbol de mensajes. La clase proporciona cuatros métodos de creación diferentes que puede utilizar para crear un nuevo elemento en el árbol de mensajes.
public override void Evaluate(NBMessageAssembly inputAssembly)
{
NBOutputTerminal outTerminal = OutputTerminal("Out");
NBMessage inputMessage = inputAssembly.Message;
// Crear un nuevo mensaje vacío, asegurándose de eliminarlo después de su uso
using (NBMessage outputMessage = new NBMessage())
{
NBMessageAssembly outAssembly = new NBMessageAssembly(inputAssembly, outputMessage);
NBElement inputRoot = inputMessage.RootElement;
NBElement outputRoot = outputMessage.RootElement;
// Opcionalmente copiar cabeceras de mensajes, eliminar si no se necesita
CopyMessageHeaders(inputRoot, outputRoot);
#region UserCode
// Añadir código de usuario en esta región para filtrar el mensaje
NBElement msg = outputRoot.CreateLastChildUsingNewParser(NBParsers.XMLNSC.ParserName).CreateFirstChild(null,"Message");
NBElement el4 = msg.CreateLastChild("Element4");
NBElement el1 = msg.CreateFirstChild("Element1");
el1.SetValue("Valor de datos para Elemento1");
el4.SetValue("Valor de datos para Elemento4");
el1.CreateAfter("Element2").SetValue("Valor de datos para Elemento2");
el4.CreateBefore("Element3").SetValue("Valor de datos para Elemento3");
#endregion UserCode
// Cambiar lo siguiente si no se va a propagar el mensaje al terminal 'Out'
outTerminal.Propagate(outAssembly);
}
}
Cuando el nodo está conectado a un nodo de salida adecuado (como por
ejemplo un nodo MQOutput), el código produce
un mensaje XML parecido al siguiente:<Message>
<Element1>Valor de datos para Elemento1</Element1>
<Element2>Valor de datos para Elemento2</Element2>
<Element3>Valor de datos para Elemento3</Element3>
<Element4>Valor de datos para Elemento4</Element4>
</Message>