Seleção XPath (SimpleXML) da criança com base no valor do irmão da criança

Estou usando o SimpleXML (Java) e estou tentando obter uma lista de objetos com base no valor de um dos irmãos da lista.

Então, aqui está meu XML:

<xml>
  <metadata>
    <resources>

      <resource>
        <ittype>Service_Links</ittype>
        <links>
          <link>
            <path>http://www.stackoverflow.com</path>
            <description>Stack Overflow</description>
          </link>
          <link>
            <path>http://www.google.com</path>
            <description>Google</description>
          </link>
        </links>
      </resource>

      <resource>
        <ittype>Article_Links</ittype>
        <links>
          ...
        </links>
      </resource>

      ...

    </resources>
  </metadata>
</xml>

O que estou tentando fazer é criar uma anotação SimpleXML usando XPath para obter uma lista de todos os"links" onde o irmão da lista"ittype" é igual a"Service_Links".

Então, por exemplo, isso funciona, mas somente se eu estou tentando obter estaticamente o primeiro"recurso"-node (ao contrário de obter dinamicamente"recurso"-node baseado no que é irmão"ittype" é:

@ElementList(name="links")
@Path("metadata/resources[1]/resource")
public List<Link> link;

Eu tentei muitas maneiras de formatar o xpath para encontrar dinamicamente o"recurso"-Não quero que eu não pudesse listá-los todos aqui; no entanto, este é um exemplo que eu tentei que me parece que deveria funcionar; Não tenho ideia do que estou fazendo errado ...

@ElementList(name="links")
@Path("metadata/resources[resource/ittype='Service_Links']/resource")
public List<Link> link;

Eu pesquisei uma tonelada, incluindo aqui no SO, e simplesmente não consigo encontrar muito semelhante; e o que eu encontrei, não traduziu bem o suficiente para eu ver o que eu preciso fazer. Por exemplo,isso SO não parece funcionar, embora seja bem parecido.


ATUALIZAÇÃO # 1 (8OCT @ 12:38 pm)

Por feedback, eu tentei isso:

@ElementList
@Path("metadata/resources/resource[ittype='Service_Links']")
public List<Link> link;

Não há dados: org.simpleframework.xml.core.PathException: índice inválido para o caminho 'metadata / resources / resource [ittype =' Service_Links ']' no campo 'links'

questionAnswers(3)

yourAnswerToTheQuestion