Necesito crear una expresión XPath que hace lo siguiente:XPath: Por defecto a 'nodo A', seleccione 'Nodo B' en lugar si Nodo B no está vacío
- Devuelve el elemento interior de ' NodeA 'de forma predeterminada
- Devuelve el elemento dentro de' NodeB 'si no está vacío.
Aquí es un poco de XML de ejemplo para que mi estructura objetivo puede 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 utilizar para evaluar el Nodo B de la existencia del texto: 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. Soy muy nuevo en XPath y aprecio cualquier ayuda que pueda ofrecerse. expresión
¡Eres la BOMBA! Pasé todo el día ayer incluso tratando de formular esa pregunta. Hombre Necesito tomar una clase para esto ... Acabo de adaptarlo a mi problema un poco más complejo. ¡Gracias de nuevo! – Shrout1