Я написал вот такое, но мне кажется что это не очень хорошо, может есть другое нормальное решение
Функция в нее передается , название карты сайта в котором ссылки на элементы и разделы хранятся , из названия можно получить id инфоблока
[CODE]function getNameElement ($map_name,$section_url){
/* $map_name = sitemap_iblock_6.xml */
$url = parse_url($section_url);
preg_match ( "#sitemap_iblock_([0-9])+.xml)#",$map_name,$iblock_match );
if ( CModule::IncludeModule('iblock') && $iblock_match[1] > 0 ){
$obj = CIBlockElement::GetList(array(),array("IBLOCK_ID"=>$iblock_match[1]),false,false,array("ID","IBLOCK_ID","NAME","SECTION_PAGE_URL"));
while( $element = $obj->GetNext() ){
if ( $url == $element["SECTION_PAGE_URL"] ){
$NAME_ELEMENT = $element["NAME"];
$find = true;
}
}
if ( !$find ){
$obj_section = CIBlockSection::GetList(array(),array("IBLOCK_ID"=>$iblock_match[1]),false,array("ID","IBLOCK_ID","NAME","SECTION_PAGE_URL"));
while( $section = $obj_section->GetNext() ){
if ( $url == $section["SECTION_PAGE_URL"] ){
$NAME_ELEMENT = $element["NAME"];
$find = true;
}
}
}
}
}
[/CODE]