Как использовать SimpleDOM sortedXPath для сортировки по значению узла? - PullRequest
1 голос
/ 29 ноября 2010

XML новичок здесь!
У меня есть файл, содержащий только следующий XML:

<tags>
 <tag>orange</tag>
 <tag>apple</tag>
 <tag>banana</tag>
</tags>

Я хочу вывести теги в алфавитном порядке.
Я пытаюсь использовать библиотеку SimpleDOM и ее метод sortedXPath . Вот что у меня есть, и выводит теги без сортировки.

$allTags = simpledom_load_file("tags.xml");
foreach ($allTags->sortedXPath("//tags/tag", "tag") as $i => $item)
{
   echo($item);
}

Может кто-нибудь сказать мне, как правильно написать это, чтобы оно работало? Ура!

1 Ответ

1 голос
/ 29 ноября 2010

В XPath вы можете ссылаться на текущий узел (называемый «контекстным узлом»), используя одну точку ., поэтому, если вы обращаетесь к //tags/tag, вы должны использовать ., чтобы получить значение tag,Ваш пример становится:

$allTags = simpledom_load_file("tags.xml");
foreach ($allTags->sortedXPath("//tags/tag", ".") as $i => $item)
{
    echo($item);
}
...