Wybór XPath (SimpleXML) dziecka na podstawie wartości rodzeństwa dziecka

Używam SimpleXML (Java) i próbuję uzyskać listę obiektów na podstawie wartości jednego z rodzeństwa listy.

Oto mój 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>

Próbuję utworzyć adnotację SimpleXML za pomocą XPath, aby uzyskać listę wszystkich"spinki do mankietów" gdzie rodzeństwo na liście„typ” równa się„Service_Links”.

Tak więc, na przykład, działa, ale tylko jeśli staram się uzyskać statycznie pierwszą"ratunek"-node (w przeciwieństwie do dynamicznego pobierania"ratunek"-node na podstawie tego, co jest rodzeństwem„typ” jest:

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

Próbowałem tak wielu sposobów formatowania ścieżki, aby dynamicznie znaleźć"ratunek"-node Chcę, abym nie mógł ich tutaj wszystkich wymienić; jednak jest to jeden z przykładów, który próbowałem, wydaje mi się, że powinien działać; nie ma pojęcia, co robię źle ...

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

Wyszukałem tonę, włączając tutaj na SO, i po prostu nie mogę znaleźć bardzo podobnego; a to, co znalazłem, nie tłumaczyło się wystarczająco dobrze, abym zauważył, co muszę zrobić. Na przykład,to więc nie działało, mimo że jest całkiem podobne.


AKTUALIZACJA # 1 (8OCT @ 12:38 pm)

Na opinię próbowałem tego:

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

Brak kości: org.simpleframework.xml.core.PathException: niepoprawny indeks ścieżki 'metadata / resources / resource [ittype =' Service_Links ']' w polu „links”

questionAnswers(3)

yourAnswerToTheQuestion