2010-03-10 24 views

Trả lời

6

Miễn là bạn đang chọn các nút văn bản cụ thể, bạn không thể. Bởi vì đơn giản là không có nút văn bản trong <td> đầu tiên.

Khi bạn thay đổi biểu thức XPath thành '//td', bạn nhận được hai nút <td>. Sử dụng giá trị văn bản của họ trong quá trình xử lý tiếp theo.

+1

Tôi vết thương lên tìm tất cả các 'nút td' và gọi .text trên chúng. Không phải là mát mẻ như làm tất cả mọi thứ trong một XPath lớn ;-) nhưng nó hoạt động. – joeforker

+0

@joeforker: Miễn là bạn không có quyền truy cập vào XPath 2.0 toàn diện, đó là lựa chọn duy nhất của bạn. :-) – Tomalak

7

Trong khi @Tomalak là hoàn toàn đúng, trong XPath 2.0 có thể sử dụng:

//td/string(.)

và điều này tạo ra một chuỗi các chuỗi - mỗi người có chứa các chuỗi giá trị của một td yếu tố tương ứng.

Vì vậy, trong trường hợp của bạn kết quả sẽ được mong muốn nhất:

"", "foo"

+1

+1. Điều này thực hiện chính xác những gì giải pháp của tôi làm cho XPath 1.0 - nó lấy các nút '' và sau đó sử dụng giá trị văn bản tương ứng của chúng. – Tomalak

Các vấn đề liên quan