Este é o endereço da página
experimental.
Por favor, dê uma olhada na imagem abaixo; este é o nó que eu realmente quero capturar. Porque é muito semelhante ao nó anterior:
<div class="indent" id="dir_2567698_short" style="display: none;">,
eu usei
//*[contains(@class,'indent') and contains(@style,'display' )]/..
para encontrar seu nó pai e, em seguida, usado
/div[6]
para localizar o alvo real. No entanto, as classificações dos nós alvo podem nem sempre estar na 6ª posição; alguns podem estar na 5ª posição. Portanto, quero usar
//*[contains(@class,'indent') and contains(@style,'display' )]/.
para primeiro localizar <div class="indent" id="dir_2567698_short" style="display: none;">
. Então, quero encontrar seu próximo nó irmão no mesmo nível, o que me permitirá encontrar com precisão o nó de destino. No entanto, tentei vários métodos sem sucesso. Como posso encontrar o 'próximo nó irmão'?
Aqui estão os métodos que tentei, mas não funcionaram:
//*[contains(@class,'indent')and contains(@style,'display' )]/./div[1]
//*[contains(@class,'indent')and contains(@style,'display' )]/./div[0]
Os IDs em HTML devem ser únicos, portanto, se você estiver procurando por um nó de elemento com um
id
atributo como<div class="indent" id="dir_2567698_short" style="display: none;">
, parece//*[@id = 'dir_2567698_short']
ou, se a implementação XPath suportar aid
função para HTML, atéid('dir_2567698_short')
deve ser suficiente.Quanto aos irmãos, use
preceding-sibling::*[1]
oufollowing-sibling::*[1]
para encontrar o primeiro elemento irmão anterior ou seguinte.