Я работаю над расширением моего текущего SimpleXML XPath, включив в него условие «или».
Вот исходный (рабочий) код ниже без каких-либо условий «или».$strXpathVar = "Scholarship/Research";
$xml_record_awards_honor_scope_teaching = $xml_award_honor_report_record[0]->xpath('a:AWARDHONOR[a:SCOPE="'.$strXpathVar.'"]');
Я «жестко запрограммировал» это вот так (ниже), и это работает:
$xml_record_awards_honor_scope_teaching = $xml_award_honor_report_record[0]->xpath('a:AWARDHONOR[a:SCOPE="Scholarship/Research" or "Teaching"]');
Однако меня интересует, как я могу использовать $strXpathVar, чтобы сделать что-то вроде ниже. В настоящее время это не работает, хотя я пробовал изменять кавычки разными способами:
$strXpathVar = " ""Scholarship/Research" or "Teaching"" ";
$xml_record_awards_honor_scope_teaching = $xml_award_honor_report_record[0]->xpath('a:AWARDHONOR[a:SCOPE="'.$strXpathVar.'"]');
Простой XML-объект $xml_award_honor_report_record получается перед этим шагом путем фильтрации по имени пользователя.
$xml_award_honor_report_record = $xml_award_honor_report->xpath('//a:Record[contains(translate(@username,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz"),"'.$user_name.'")]');
Вот фрагмент XML:
Instuction 2022
Scholarship/Research
Instruction 2023
Teaching
Подробнее здесь: https://stackoverflow.com/questions/791 ... onal-value