2016-07-30 2 views
0

Мне нужно отсортировать XML-файл, доступ к которому осуществляется с удаленного сервера и получить доступ к нему простым XML (его одобренный способ доступа к файлу в спецификации от поставщика), поэтому не может быть изменено)Сортировка удаленного XML-файла по полю

$propertylist = simplexml_load_file("http://link.to/file.xml?accesskey"); 

Мне нужно сортировать на $propertylist->price высокой к низкой, не обжигающе содержимое XML в отдельный файл

я видел (и пытались) ряд предложений не найдено здесь с не успех :(

arsort($propertylist->price); нарушает код

Вот отрывок из XML:

<?xml version="1.0" encoding="UTF-8"?> 
<properties> 
    ....... 
    <property> 
     <propertyID /> 
     <branchID>1</branchID> 
     <clientName>y</clientName> 
     <branchName>z</branchName> 
     <department>S</department> 
     <referenceNumber>1</referenceNumber> 
     <price>219950</price> 
     <fullDescription><![CDATA[<strong>LOCATION</strong>]]></fullDescription> 
     <flags> 
     <flag /> 
     </flags> 
     <images> 
     <image modified="2014-05-22 11:10:33">http://link.to/image.jpg</image> 
     </images> 
     <epcFrontPages /> 
     <brochures> 
     <brochure modified="2014-05-22 14:37:38">http://link.to/file.pdf</brochure> 
     </brochures> 
    </property> 
    ....... 
</properties> 

Любая помощь очень высоко ценится

+0

Не могли бы вы добавить пример вашего XML! –

+0

Я в замешательстве относительно того, что вы хотите @Ismail, страница работает нормально, так как она в настоящий момент просто несортирована - я могу опубликовать весь код страницы, если это поможет –

+0

Просто часть XML, исходный XML! –

ответ

0

Пожалуйста, попробуйте следующее:

//Read the xml file 
$xml = simplexml_load_file("http://link.to/file.xml?accesskey"); 
//Get all properties 
$propertylist = $xml->xpath("/properties/property"); 
//Sort them by price (descending) 
usort($propertylist, function($a, $b) { 
    return $b->price - $a->price; 
}); 

//Now you can loop through your ordered `$propertylist`: 
foreach($propertylist as $property) { 
    echo $property->fullDescription . "<br>"; 
} 

Демо:https://3v4l.org/Gj120

+0

необходимо сделать пару изменений, только незначительные, жонглируя имена переменных, чтобы они соответствовали остальной части кода страницы Спасибо :) :) –

0

контролировать свой данные в массив

<?php 
$simple = "<para><note>simple note</note></para>"; 
$p = xml_parser_create(); 
xml_parse_into_struct($p, $simple, $vals, $index); 
xml_parser_free($p); 
echo "Index array\n"; 
print_r($index); 
echo "\nVals array\n"; 
print_r($vals); 
?> 

затем отсортировать его как массив sort array functions

Смежные вопросы