Аргумент, который вы передаете findnodes()
, является выражением XPath. В вашем примере используется простая проверка на равенство (этот бит: @NAME="Final Assembly - 1/16-Traveler
), но есть и другие варианты, включая функции XPath , которые вы можете использовать. Например, функция contains()
:
$dom->findnodes('//TRAVELER[contains(@NAME,"Final Assembly")]/...')
Вы также можете использовать and
для объединения выражений:
$dom->findnodes('//TRAVELER[contains(@NAME,"Final Assembly") and contains(@NAME,"traveler")]/...')
Вот пример, с которым вы можете поиграть в XPath Sandbox .
Мы также можем XML :: Lib XML :: XPathContext зарегистрировать ваши собственные функции, написанные на Perl. См. Пользовательские функции XPath в документации.