Hy vọng một người nào đó có thể nhanh chóng chỉ cho tôi đúng hướng với các khó khăn XPath của tôi.XPath để định vị ô có phân tích cú pháp văn bản HTML bảng
Hiện tại tôi đã đến mức tôi xác định đúng bảng tôi cần trong nguồn HTML nhưng sau đó tôi chỉ cần xử lý các hàng có văn bản 'Chương' ở đâu đó trong DOM.
nỗ lực cuối cùng của tôi là để làm điều này:
// get the correct table
HtmlTable table = page.getFirstByXPath("//table[2]");
// now the failing bit....
def rows = table.getByXPath("*/td[contains(text(),'Chapter')]")
Tôi nghĩ xpath trên sẽ đại diện, làm cho tôi tất cả các yếu tố đó có một phần tử con sau 'td' rằng ở đâu đó trong dom nó chứa văn bản ' Chương'
một ví dụ về một dòng tương ứng từ nguồn của tôi là:
<tr valign="top">
<td nowrap="" align="Right">
<font face="Verdana">
<a href="index.cfm?a=1">Chapter 1</a>
</font>
</td>
<td class="ChapterT">
<font face="Verdana">DEFINITIONS</font>
</td>
<td> </td>
</tr>
Bất kỳ sự giúp đỡ/con trỏ đánh giá rất cao.
Xin cảm ơn,
Cảm ơn, rằng dường như hoạt động. '.' đại diện? Ngoài ra, tôi không hiểu tại sao tính năng phát hiện 'tái phát' không hoạt động, ví dụ: bạn có // mà như tôi hiểu có nghĩa là bắt đầu từ gốc? – Dave
@Dave, bạn được chào đón. '.' và' // 'là cú pháp viết tắt của XPath. '.' chọn nút ngữ cảnh. '// td' chọn tất cả các con cháu' td' của gốc tài liệu và do đó chọn tất cả các phần tử 'td' trong cùng một tài liệu như nút bối cảnh. * Tham khảo *: http://www.w3.org/TR/xpath/#path-abbrev –