Seleccionando los hijos del primer resultado usando xpath.

Tengo un fragmento de XML donde la misma información puede aparecer como un elemento secundario de nodos diferentes. Como :

<root>
<category id=1>
        <product id="ABC123" >

              <sizes>
                    <size name="S"/>
                <size name="M"/>
                <size name="L"/>
                <size name="XL"/>
                <size name="2XL"/>
                <size name="3XL"/>
              </sizes>
            </product>

                 </products>
           </category>
<category id=2>
        <products>
        <product id="ABC123" >

              <sizes>
                    <size name="S"/>
                <size name="M"/>
                <size name="L"/>
                <size name="XL"/>
                <size name="2XL"/>
                <size name="3XL"/>
              </sizes>
            </product>

          <product id="PPP543" >

              <sizes>
                    <size name="S"/>
                <size name="M"/>
                <size name="L"/>
                <size name="XL"/>
              </sizes>
            </product>

                 </products>
           </category>

Mi objetivo es seleccionar los tamaños de identificación del producto ABC123 y almacenarlos como una matriz. El código actual que tengo es:

$arrTest=array();


    foreach($xml->xpath('//root/category/products/product[@id= "'.$productCall.'" ]/sizes/size') as $size){

              array_push($arrTest, $size["name"]);
      }

$ productCall es el id que estoy buscando. En este caso es ABC123.

La salida es S, M, L, XL, 2XL, 3XL, S, M, L, XL, 2XL, 3XL. Lo que significa que está leyendo las dos entradas que se encontraron. Esperaba esto dado el bucle foreach, pero parece que no puedo encontrar una manera de obtener el resultado del primer resultado. He intentado agregar [0] y [1]:

$y=$xml->xpath('//root/category/products/product[@id= "'.$productCall.'" ][1]/sizes/size');

[0] no devuelve nada y [1] devuelve los mismos resultados que ya estoy obteniendo.

Espero que esto sea una cuestión simple de que me falte algo básico o que simplemente piense demasiado, ya que realmente no he trabajado con xpath antes.

Respuestas a la pregunta(1)

Su respuesta a la pregunta