我正在使用正在用作“数据库”的XML文件。在这个例子中,它包含有关书籍的信息。
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
<book id="bk103">
<author>Corets, Eva</author>
<title>Maeve Ascendant</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-11-17</publish_date>
<description>After the collapse of a nanotechnology
society in England, the young survivors lay the
foundation for a new society.</description>
</book>
</catalog>
然后我想使用simpleXML在我的页面中显示图书的价格。 但我的客户要求“排序依据”按钮。我无法在Google和SO中找到任何方法来对simpleXML输出进行排序,让我们说对象属性为“price”。
<?php
$xml = simplexml_load_file('example.xml');
$number = count($xml->book);
//Looping through the xml.
for($i = 0; $i < $number; $i++) { ?>
<div class="info">
<span><?php echo((string) $xml->book[$i]->price); ?></span>
</div>
<?php } ?>
就像现在一样,它只是按照它们在xml中编写的顺序向我展示了这本书的价格。 我想可能会使用JS进行此操作,但似乎不太可能,因为这意味着我必须将所有书籍放在一个页面中。我甚至想过使用SQL然后使用ORDER BY子句,但问题是这个XML是动态的并且一直在变化,这意味着我需要始终关注XML文件中的更改并自动更新SQL数据库,我不知道该怎么做。我真正想要的是使用PHP改变XML的顺序,是否可能?