XPath: predeterminado para 'Nodo A', seleccione 'Nodo B' en cambio si 'Nodo B' no está vacío

Necesito crear una expresión XPath que haga lo siguiente:

Devuelve el elemento dentro de 'NodeA' por defectoDevuelve el elemento dentro de 'NodeB' si no está vacío.

Aquí hay algunos ejemplos de XML para que mi estructura de destino pueda verse claramente (estoy usando MS InfoPath):

<?xml version="1.0" encoding="UTF-8"?><?mso-infoPathSolution solutionVersion="1.0.0.10" productVersion="14.0.0" PIVersion="1.0.0.0" href="file:///C:\Documents%20and%20Settings\Chris\Local%20Settings\Application%20Data\Microsoft\InfoPath\Designer3\9016384cab6148f6\manifest.xsf" ?><?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.3"?>
<my:myFields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-09-07T14:19:10" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xml:lang="en-us">
<my:NodeASection>
    <my:NodeA>2012-09-13</my:NodeA>
</my:NodeASection>
    <my:NodeBSection>
        <my:NodeBGroup>
            <my:NodeB>2012-09-14</my:NodeB>
        </my:NodeBGroup>
    </my:NodeBSection>
</my:myFields>

Esta expresión XPath se puede usar para evaluar la existencia de texto en NodeB:boolean(//my:NodeB[(text())])

He oído hablar del "Método Becker", pero no estoy seguro de cómo se aplica cuando ambos nodos existen. soymuy Nuevo en XPath y aprecio cualquier ayuda que se pueda ofrecer.

Respuestas a la pregunta(3)

Su respuesta a la pregunta