[第一个复杂情况是从解引用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计算器是命名空间-challenged或命名空间忘记,所以你可能需要很多写为
//div[@id='zc-tn-top']//div[@class='zc-tn-t']
谢谢,我不知道我能id和class照片直接而不调用体,仅有1个多问题,为什么我加'//a'结尾,使其输出为单行而不是行。谢谢 – Mowgli
在它的末尾添加“'// a'”将使XPath表达式匹配不是class =“zc-tn-t”的div元素集合,而是匹配它们内部的一组'''元素这种情况是空集)。我不知道如何回答你关于单行和多行的问题,因为我不知道你的意思。 –
谢谢,我现在明白了。 – Mowgli