XPath con elemento opcional en jerarquía
Como en estoRespuesta de desbordamiento de pila imagine que necesita seleccionar una tabla en particular y luego todas las filas de la misma. Debido a la permisividad de HTML, los tres siguientes son marcas legales:
<table id="foo"><tr>...</tr></table>
<table id="foo"><tbody><tr>...</tr></tbody></table>
<table id="foo"><tr>...</tr><tbody><tr>...</tr></tbody></table>
Le preocupan las tablas anidadas en tablas y, por lo tanto, no desea usar un XPath comotable[@id="foo"]//tr
.
Si pudieras especificar tu XPath deseada como una expresión regular, podría verse así:table[@id="foo"](/tbody)?/tr
En general, ¿cómo puede especificar una expresión XPath que permita un elemento opcional en la jerarquía de un selector?
Para ser claros, no estoy tratando de resolver un problema del mundo real o seleccionar un elemento específico de un documento específico. Estoy pidiendo técnicas para resolver una clase de problemas.