[第一个复杂情况是从取消引用该 URI 返回的数据流实际上不是 XML;它有数千个格式正确的错误(URI 中未转义的 & 符号、脚本中未转义的 & 符号和小于号、一些嵌入的 HTML、一些杂项错误)。但是,由于您没有报告问题,因此我假设在服务器和您的 XPath 表达式之间的某个地方有人正在做一些整理。]
如果您使用文档中广泛使用的id
和属性,我认为您将获得更好的结果。class
您想要的材料在源代码中看起来像这样(您可以使用任何基于浏览器的调试工具来查找它;我在 Safari 中使用了“Web Inspector”);我已经缩进以使结构更加可见,并修复了其中一个a
元素中的一些格式错误(属性-值对之间缺少空格)。
<div class="zc-tn" id="zc-tn-top">
<div class="zc-tn-i">
<a href="ZCGrid.do?fromTimeInMillis=1355781600000"
class="zc-tn-l"
title="Move the grid three hours earlier"></a>
<div class="zc-tn-c">
<span class="zc-tn-z"
title="Central Standard Time">CST</span>
<div class="zc-tn-t">7:00 PM</div>
<div class="zc-tn-t">7:30 PM</div>
<div class="zc-tn-t">8:00 PM</div>
<div class="zc-tn-t">8:30 PM</div>
<div class="zc-tn-t">9:00 PM</div>
<div class="zc-tn-t">9:30 PM</div>
</div>
<a href="ZCGrid.do?fromTimeInMillis=1355803200000"
class="zc-tn-r"
title="Advance the grid three hours"></a>
</div>
</div>
一个简单的搜索验证该值zc-tn-top
作为文档中的 ID 值确实是唯一的。鉴于此,一个简单的 XPath 表达式来检索图像中显示的所有元素(假设xhtml
绑定到 XHTML 命名空间):
//xhtml:div[@id='zc-tn-top']//xhtml:div[@class='zc-tn-t']
从您的问题来看,您的 XPath 评估器似乎是命名空间挑战或命名空间遗忘,因此您可能需要将其写为
//div[@id='zc-tn-top']//div[@class='zc-tn-t']