使用PHP查询XML文件

时间:2011-01-01 20:54:40

标签: php xml

使用PHP5有一种查询类似于查询数据库的XML文件的方法吗?如果我有一个包含50个酒店条目的XML文件,我如何查询XML文件以获取特定条目?我还可以按字段重新组织XML条目,例如日期字段吗?所以,如果我想按降序日期顺序显示条目,我可以这样做吗?

2 个答案:

答案 0 :(得分:2)

可以使用xpath(simplexmldomxpath

然而,排序是不直观的

使用simplexml的例子:

$str = '<hotels>
  <hotel>
    <id>1</id>
    <name>Hilton</name>
    <date>2011-01-01</date>
  </hotel>
  <hotel>
    <id>2</id>
    <name>Accor</name>
    <date>2011-01-02</date>
  </hotel>
  <hotel>
    <id>3</id>
    <name>Sands</name>
    <date>2011-01-03</date>
  </hotel>
  ... etc
</hotels>';

$xml = simplexml_load_string($str);

/* find a specic hotel with name=Sands */
$found = $xml->xpath('/hotels/hotel/name[.="Sands"]');

/* order by date */
$sort = array();
foreach ($xml->hotel as $obj)
{
  $sort[(string)$obj->date] = $obj;
}
arsort($sort);

答案 1 :(得分:1)

  

这意味着如果我有一个包含50个酒店条目的xml文件,使用PHP5可以查询xml文件以获取特定条目吗?

看看XPath

编辑:好我不应该读得这么快,看看SimpleXML,这将允许您加载XML文件并对其执行查询,更具体地说,看看在this