Framesets
Framesets
Hướng dẫn này cho thấy cách đọc cấu trúc trang khung kế thừa trong Aspose.Words FOSS cho .NET bằng cách sử dụng các lớp Frameset và FramesetCollection, chúng đại diện cho một trang khung và các khung con khi cấu trúc tài liệu mô hình hoá một tập hợp các khung.
Lớp Frameset
Frameset đại diện cho một trang khung hoặc một khung duy nhất trên một trang khung. Document.Frameset trả về Frameset gốc cho một tài liệu đã được tải từ cấu trúc HTML có khung. FrameDefaultUrl (string) là URL của trang web hoặc tên tệp tài liệu được hiển thị trong khung đó. IsFrameLinkToFile (bool) cho biết liệu giá trị FrameDefaultUrl có phải là tài nguyên bên ngoài mà khung liên kết tới hay không. ChildFramesets trả về một FramesetCollection của các khung con và các trang khung được lồng bên trong.
Duyệt các khung con với FramesetCollection
FramesetCollection thực thi IEnumerable<Frameset>, vì vậy GetEnumerator() hỗ trợ việc lặp lại foreach trên các khung mà nó chứa. Count báo cáo số lượng khung hoặc trang khung trong bộ sưu tập. Kết hợp Count và việc lặp lại với ChildFramesets để duyệt cấu trúc trang khung lồng nhau một cách đệ quy — mỗi Frameset con có thể tự chứa thêm ChildFramesets.
Mẹo và Thực hành tốt nhất
- Kiểm tra
Document.Framesetđể tìmnulltrước khi đọc các thuộc tính của nó — hầu hết tài liệu không phải là trang khung, vì vậy thuộc tính này chỉ được điền khi HTML nguồn đã sử dụng bố cục khung. - Duyệt
ChildFramesetsmột cách đệ quy (thay vì giả định cấu trúc phẳng, một cấp) vì một trang khung có thể lồng thêm các trang khung khác bên trong các khung của nó. - Sử dụng
IsFrameLinkToFileđể phân biệt một khung liên kết tới tài nguyên bên ngoài với một khung nhúng tên tệp tài liệu trực tiếp trongFrameDefaultUrl. FramesetCollection.Countlà cách đơn giản để kiểm tra xem mộtFramesetcó bất kỳ phần tử con nào không trước khi lặp.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Khắc phục |
|---|---|---|
Document.Frameset là null | Tài liệu không được tải từ nguồn HTML dựa trên khung | Xác nhận tài liệu nguồn thực sự đã sử dụng khung HTML trước khi dựa vào thuộc tính này |
Việc lặp lại ChildFramesets bỏ qua các khung lồng nhau | Chỉ cấp độ trên cùng đã được lặp lại | Đệ quy vào từng Frameset.ChildFramesets con thay vì duyệt một cấp sâu |
| Không thể xác định khung trỏ tới tệp hay URL | IsFrameLinkToFile chưa được kiểm tra | Đọc IsFrameLinkToFile cùng với FrameDefaultUrl để biết cách giải quyết mục tiêu |
FAQ
Frameset là gì trong Aspose.Words FOSS cho .NET?
Nó đại diện cho một trang khung hoặc một khung duy nhất trên một trang khung, được hiển thị dưới dạng Document.Frameset cho các tài liệu được tải từ nguồn HTML dựa trên khung.
Làm thế nào để liệt kê tất cả các khung trong một frameset?
Lặp lại Frameset.ChildFramesets (một FramesetCollection) với GetEnumerator() / foreach, đệ quy vào bất kỳ phần tử con nào mà bản thân nó có thêm ChildFramesets.
Làm sao tôi biết một Frameset có bao nhiêu khung con?
Đọc FramesetCollection.Count trên thuộc tính ChildFramesets của nó.
IsFrameLinkToFile cho bạn biết gì?
Liệu trang web hoặc tên tệp tài liệu trong FrameDefaultUrl có phải là tài nguyên bên ngoài mà khung được liên kết tới hay không.
API Reference Tóm tắt
| Lớp/Phương thức | Mô tả |
|---|---|
Document.Frameset | Gốc Frameset cho tài liệu được tải từ nguồn HTML dựa trên khung |
Frameset | Biểu diễn một trang khung hoặc một khung đơn trên một trang khung |
Frameset.FrameDefaultUrl | URL của trang web hoặc tên tệp tài liệu được hiển thị trong khung |
Frameset.IsFrameLinkToFile | Liệu FrameDefaultUrl có phải là tài nguyên liên kết bên ngoài hay không |
Frameset.ChildFramesets | FramesetCollection của các khung con và các trang khung |
FramesetCollection | Tập hợp các thể hiện Frameset; Count, GetEnumerator |