поиск документов XML с использованием php - PullRequest
3 голосов
/ 21 марта 2010

Я пытаюсь создать функцию поиска, используя комбинацию DOM, PHP и XML.Я получил что-то и работает, но проблема в том, что моя функция поиска будет принимать только точные термины, кроме того, мне интересно, если метод, который я выбрал, наиболее эффективен

1 Ответ

2 голосов
/ 21 марта 2010

Как сказал Карусселл, лучший ответ - не использовать PHP для этого.Найдите библиотеку, которая может позаботиться об этом за вас.

Однако я признаю, что это не всегда вариант.Имея это в виду ...

Я думаю, что вы немного более многословны, чем нужно.Во-первых, вы должны использовать метод DOMDocument-> load ($ file) для загрузки файла.

Тогда, вероятно, я бы использовал XPath-запрос , чтобы выбрать искомые узлы вместо того, чтобы выполнять поиск самостоятельно.

Ваш код в конечном итоге будет искать что-токак это:

$searchTerm = "text";

$doc = new DOMDocument();
$doc->load( 'musicInformation.xml' );

$xpath = new DOMXPath( $doc );

$result = $xpath->query(
    '//musicdetails[ .//text()[contains( ., "'. addslashes($searchTerm) .'" )] ]'
);

echo "Found: ". $result->length ."\n";

foreach ( $result AS $node ) {
    echo $doc->saveXML($node) ."\n\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...