如何限制,按。。。XML/PHP
EX文件music.xml:如何限制,按。。。XML/PHP,php,xml,Php,Xml,EX文件music.xml: <musics> <music id="1"> <title>Title 1</title> <url>music/1.mp3</url> </music> <music id="2"> <title>Title 2</title> <url>music/2.mp3<
<musics>
<music id="1">
<title>Title 1</title>
<url>music/1.mp3</url>
</music>
<music id="2">
<title>Title 2</title>
<url>music/2.mp3</url>
</music>
<music id="3">
<title>Title 3</title>
<url>music/3.mp3</url>
</music>
<music id="4">
<title>Title 4</title>
<url>music/4.mp3</url>
</music>
</musics>
如何选择限制(X,Y)
如何按标题或url排序返回一个数组,这样您就可以随心所欲地使用它了 您只需创建自己的函数,下面是一个演示
<?php
$xml = new SimpleXMLElement('music.xml', NULL, TRUE);
$result = $xml->xpath('music');
echoPre(limitXml($result, 0, 1), "Limited XML Result");
echoPre(sortXml($result, 'title', 'desc'), "Sorted XML Result");
function limitXml($array, $x, $y = 0) {
return array_slice($array, $x, $x + $y - count($array));
}
function sortXml($array, $sortBy, $sortType = "asc") {
if ($sortBy == "title")
usort($array,'cmpTitle');
else if ($sortBy == "url")
usort($array,'cmpUrl');
return ($sortType == 'desc') ? array_reverse($array) : $array;
}
function cmpTitle($a, $b) {
return strcmp($a->title, $b->title);
}
function cmpUrl($a, $b) {
return strcmp($a->url, $b->url);
}
function echoPre($el, $title) {
echo "<h1>".$title."</h2><pre>";
print_r($el);
echo "</pre>";
}
?>
<?php
$xml = new SimpleXMLElement('music.xml', NULL, TRUE);
$result = $xml->xpath('music');
echoPre(limitXml($result, 0, 1), "Limited XML Result");
echoPre(sortXml($result, 'title', 'desc'), "Sorted XML Result");
function limitXml($array, $x, $y = 0) {
return array_slice($array, $x, $x + $y - count($array));
}
function sortXml($array, $sortBy, $sortType = "asc") {
if ($sortBy == "title")
usort($array,'cmpTitle');
else if ($sortBy == "url")
usort($array,'cmpUrl');
return ($sortType == 'desc') ? array_reverse($array) : $array;
}
function cmpTitle($a, $b) {
return strcmp($a->title, $b->title);
}
function cmpUrl($a, $b) {
return strcmp($a->url, $b->url);
}
function echoPre($el, $title) {
echo "<h1>".$title."</h2><pre>";
print_r($el);
echo "</pre>";
}
?>