В XPath 1.0 (который, я считаю, лучшее, что вы можете получить с помощью PHP SimpleXML), вам придется использовать функцию translate()
для получения строчных выводов из ввода со смешанным регистром.
Для удобства я бы обернул его в такую функцию:
function findStopPointByName($xml, $query) {
$upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"; // add any characters...
$lower = "abcdefghijklmnopqrstuvwxyzæøå"; // ...that are missing
$arg_stopname = "translate(StopName, '$upper', '$lower')";
$arg_query = "translate('$query', '$upper', '$lower')";
return $xml->xpath("//StopPoint[contains($arg_stopname, $arg_query)");
}
В качестве дезинфицирующей меры я бы либо полностью запретил, либо избегал одинарных кавычек в $query
, потому что они нарушат вашу строку XPath, если их игнорируют.