PHP XPATH在改变XML结构

时间:2011-02-18 16:00:44

标签: php xml xpath

我有一个像这样的XML文件:

<tr class="station">  
  <td class="realtime"> 
    <span>
      15:11 
    </span>
  </td> 
</tr>

<tr class="station">  
  <td class="clock"> 
    15:20 
  </td> 
</tr>

<tr class="station">  
  <td class="clock"> 
    15:30 
  </td> 
</tr>

<tr class="station">  
  <td class="realtime"> 
    <span>
      15:41 
    </span>
  </td> 
</tr>

我想用php中的xpath解析它。 xml经常更新和解析 我总是想第一次(在这种情况下是15:11) 问题是它不确定周围的标签是否是“时钟”或“实时”类的td 如果有一个如此周围的实时,那么内部就有一个span标签。否则不是。
实际上,它始终是信息所在的第一个“站”级标签,这很重要。 那么可以告诉xpath只在这个标签内进行评估吗? 在xpath中有这么好的方法吗?
(我的英语不好)

1 个答案:

答案 0 :(得分:2)

  事实上,它始终是第一位的   “站” - 类标签中的   信息是重要的。它就是这样   可以告诉xpath   在这个标签内评估?

使用这个良好的输入源:

<table>
    <tr class="station">
        <td class="realtime">
            <span>
                15:41
            </span>
        </td>
    </tr>
    <tr class="station">
        <td class="clock">
            15:20
        </td>
    </tr>
    <tr class="station">
        <td class="clock">
            15:30
        </td>
    </tr>
    <tr class="station">
        <td class="realtime">
            <span>
                15:41
            </span>
        </td>
    </tr>
</table>

这个XPath表达式:

/table/tr[@class='station'][1]/td

注意:只需选择所需的元素,然后使用正确的DOM API方法获取字符串值。是否存在span元素并不重要。

如果你想......

/table/tr[@class='station'][1]/td//text()