XPath i PHP: nic nie działa poprawnie

Oto mój kod:

$XML = <<<XML
<items>
    <item id="123">
        <name>Item 1</name>
    </item>
    <item id="456">
        <name>Item 2</name>
    </item>
    <item id="789">
        <name>Item 3</name>
    </item>
</items>
XML;


$objSimpleXML = new SimpleXMLElement($XML);

print_r($objSimpleXML->xpath('./item[1]'));
print "- - - - - - -\n";
print_r($objSimpleXML->xpath('./item[2][@id]'));
print "- - - - - - -\n";
print_r($objSimpleXML->xpath('./item[1]/name'));

Nic specjalnego: próbuję wyodrębnić pewne dane za pośrednictwemXPath. Ścieżka musi być ciągiem znaków do zaprojektowania dynamicznego programu, który ładuje swoje dane zXML plik konfiguracyjny.

Podczas korzystania z dostępu do obiektu PHP, jak$objSimpleXML->items->item[0]['id'] wszystko dziala. AleXPath podejście naprawdę nie działa. Powyższy kod generuje następujące dane wyjściowe:

Array
(
    [0] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [id] => 123
                )

            [name] => Item 1
        )

)
- - - - - - -
Array
(
    [0] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [id] => 456
                )

            [name] => Item 2
        )

)
- - - - - - -
Array
(
    [0] => SimpleXMLElement Object
        (
        )

)

Zgadzam się z pierwszym wyjściem. Ale w drugim wyjściu zwracany jest cały element zamiast atrybutu. Czemu? A ostatnia aukcja jest pusta zamiast zawartości nazwy?

questionAnswers(2)

yourAnswerToTheQuestion