在XPath中实现条件

时间:2010-08-10 10:32:10

标签: php xml xpath simplexml

我有一个XML文件

<?xml version="1.0" encoding="UTF-8"?>
<xml>
  <events date="12/12/2010">
    <event>
      <title>JqueryEvent</title>
      <description>
        easily
      </description>
    </event>
  </events>
  <events date="14/12/2011">
    <event>
      <title>automatically onBlur</title>
      <description>
        when a date is selected. For an inline calendar, simply attach the datepicker to a div or span.
      </description>
    </event>
  </events>
</xml>

我正在使用此Xpath来选择节点

$xml   = simplexml_load_file($file);
$nodes = $xml->xpath('//xml/events');

它将选择所有节点。我想根据日期选择节点。

2 个答案:

答案 0 :(得分:7)

在xpath表达式中指定日期

$nodes = $xml->xpath('//xml/events[@date="14/12/2011"]');

将仅选择示例

中的最后一个事件节点

答案 1 :(得分:4)

使用

$xml = simplexml_load_string($xml);
$nodes = $xml->xpath('//events[@date="14/12/2011"]');
print_r( $nodes );

获取具有指定日期和

的xml节点下的事件节点
$xml = simplexml_load_string($xml);
$nodes = $xml->xpath('//xml/events[@date]');
print_r( $nodes );

获取具有日期属性的xml节点节点下的所有事件。同样,使用

$xml = simplexml_load_string($xml);
$nodes = $xml->xpath('//events[contains(@date, "2011")]');
print_r( $nodes );

使用包含字符串“2011”的日期属性查找文档中任何位置的所有事件节点。

在旁注中,您可以使用simplexml_load_file直接加载XML文件。