Как я могу найти значение в объекте? - PullRequest
1 голос
/ 09 марта 2009

У меня есть PHP-скрипт, который проходит через XML-файл, но я хочу иметь возможность искать объект по значению, так же, как я могу искать по массиву значение.

Согласно комментариям на PHP.net, array_search () поддерживает объекты начиная с PHP5, но я не могу заставить его работать.

Файл XML представляет собой список автобусных остановок, и я хочу иметь возможность искать объект после соответствующей автобусной остановки.

Текущий код выглядит следующим образом, просто перечисляет остановки:

$xml = new SimpleXMLElement(file_get_contents("StopPointList.xml"));

foreach ($xml->StopPoint as $stop)
{
    echo $stop->StopName.'<br />';
}

И для справки, XML-файл автобусной остановки выглядит так:

<?xml version="1.0" encoding="ISO-8859-1"?>
<StopPointList NetworkVersion="20080828">
    <StopPoint>
        <DISID>3012086:2</DISID>
        <PositionNumber>2</PositionNumber>
        <StopPointName>2</StopPointName>
        <StopName>Sinsenveien</StopName>
    </StopPoint>
    <StopPoint>
        <DISID>2160364:2</DISID>
        <PositionNumber>2</PositionNumber>
        <StopPointName>2</StopPointName>
        <StopName>Rogneskjær</StopName>
    </StopPoint>
</StopPointList>

Я хотел бы иметь возможность выполнять поиск, подобный MySQL, следующим образом:% search%

Как я могу это сделать?

1 Ответ

2 голосов
/ 09 марта 2009

Я бы сказал, что для этого была создана XPath ( спецификация / учебник ).

Например: чтобы найти все точки остановки с именем, содержащим "Sinsen", это будет выражение XPath для использования:

//StopPoint[contains(StopName, 'Sinsen')]

В PHP вы можете использовать SimpleXML (SimpleXMLElement::xpath) , чтобы сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...