Estoy reformateando un documento HTML utilizando el paquete Agility, y me he topado con una limitación de mi comprensión de XPath.
En el documento con el que estoy trabajando, el siguiente es un constructo común:
128 2
Que se construye así:
128<img src="" style="display: none;" alt="^(" /><sup>2</sup><img src="" style="display: none;" alt=")" />
Entonces, cuando seleccionas eso y lo copia al portapapeles se convierte en:
128 ^ (2)
Ahora, me gustaría usar XPath para eliminar estas etiquetas img
.
Aquí está lo que tengo hasta ahora:
//img[@alt='^(' ???/sup]
¿Cómo selecciono un elemento basado en la existencia de un hermano inmediato?
Al parecer es algo como esto:
//img[@alt='^(' and following-sibling::*[1][self::sup]]
Eso es (y, supongo, aquí):
//img
Un img
(en cualquier lugar) ...
[@alt='^(' and ... ]
... cuyo atributo alt
es '^('
y ...
following-sibling::*[1]
... cuyo primer hermano siguiente ...
[self::sup]
... puede llamarse una sup
Fuera de la parte superior de mi cabeza, que sea una condición compuesta. Algo como:
//img[@alt='^(' ???/sup AND preceding-sibling::*[1] AND following-sibling::*[1]]