Tôi đang gặp sự cố khi hiểu sự khác biệt giữa text()
và node()
. Từ những gì tôi hiểu, text()
sẽ nằm ở giữa các thẻ <item>apple</item>
là apple trong trường hợp này. Nút này sẽ là bất kỳ nút nào thực sự là, có thể là mụcXPath - Sự khác biệt giữa nút() và văn bản()
Nhưng sau đó tôi đã được giao một số công việc yêu cầu "Chọn văn bản của tất cả các mục trong sản phẩm" và một câu hỏi riêng biệt hỏi "Chọn tất cả các nút quản lý trong tất cả các phòng ban"
thế nào là sản phẩm giả nhìn text()
như trái ngược với node()
Snippet của XML:
<produce>
<item>apple</item>
<item>banana</item>
<item>pepper</item>
</produce>
<department>
<phone>123-456-7891</phone>
<manager>John</manager>
</department>
Tất nhiên, có nhiều phòng ban và nhiều người quản lý hơn, nhưng đây chỉ là một đoạn mã.
Mọi trợ giúp sẽ được đánh giá cao!
@Xeoncross Cảm ơn bạn. :) – Tomalak
Đó là một câu trả lời tuyệt vời, nhưng đối với hồ sơ, có một vài điểm không chính xác. (a) Ý nghĩa của phép thử nút '" * "' phụ thuộc vào trục: với hầu hết các trục, nó chọn các nút phần tử, nhưng với trục thuộc tính nó chọn các thuộc tính, và với trục không gian tên nó chọn các không gian tên. (b) '@ *' và '@ foo' không phải là kiểm tra nút, nhưng các bước trục, bao gồm hai phần: một trục (' @ ', viết tắt của' attribute :: ') và một nút kiểm tra ('*' hoặc 'foo'). –
@MichaelKay Cảm ơn bạn đã làm rõ. Tôi sẽ sửa đổi các bit gây hiểu lầm.Tuy nhiên, các trục nằm ngoài phạm vi của câu hỏi này, nhưng thật khó để tránh đề cập đến chúng khi bạn đang nói về XPath. – Tomalak