Framesets
Framesets
Цей посібник показує, як читати застарілу структуру сторінок з фреймами у Aspose.Words FOSS для .NET, використовуючи класи Frameset і FramesetCollection, які представляють сторінку з фреймами та її дочірні фрейми, коли структура документа моделює набір фреймів.
Клас Frameset
Frameset представляє сторінку з фреймами або окремий фрейм на сторінці з фреймами. Document.Frameset повертає кореневий Frameset для документа, який був завантажений зі структури HTML з фреймами. FrameDefaultUrl (string) — це URL веб-сторінки або ім’я файлу документа, що відображається у цьому фреймі. IsFrameLinkToFile (bool) вказує, чи значення FrameDefaultUrl є зовнішнім ресурсом, на який посилається фрейм. ChildFramesets повертає FramesetCollection дочірніх фреймів і сторінок з фреймами, вкладених під цим.
Ітерація дочірніх фреймів за допомогою FramesetCollection
FramesetCollection реалізує IEnumerable<Frameset>, тому GetEnumerator() підтримує ітерацію foreach над фреймами, які він містить. Count повідомляє кількість фреймів або сторінок з фреймами у колекції. Поєднайте Count та ітерацію з ChildFramesets, щоб рекурсивно проходити вкладену структуру сторінок з фреймами — кожен дочірній Frameset може сам містити подальші ChildFramesets.
Поради та найкращі практики
- Перевірте
Document.Framesetнаnullперед читанням його властивостей — більшість документів не є сторінками з фреймами, тому ця властивість заповнюється лише коли вихідний HTML використовував макет з фреймами. - Обійдіть
ChildFramesetsрекурсивно (замість того, щоб припускати плоску, однорівневу структуру), оскільки сторінка з фреймами може вкладати інші сторінки з фреймами всередині своїх фреймів. - Використовуйте
IsFrameLinkToFile, щоб розрізнити фрейм, який посилається на зовнішній ресурс, від того, який вбудовує ім’я файлу документа безпосередньо вFrameDefaultUrl. FramesetCollection.Count— це простий спосіб перевірити, чи маєFramesetбудь-які дочірні елементи перед ітерацією.
Типові проблеми
| Проблема | Причина | Виправлення |
|---|---|---|
Document.Frameset є null | Документ не був завантажений з HTML джерела, що базується на фреймах | Переконайтеся, що вихідний документ дійсно використовував HTML фрейми, перш ніж покладатися на цю властивість |
Ітерація ChildFramesets пропускає вкладені фрейми | Лише верхній рівень був ітерований | Рекурсивно обробляти кожен дочірній Frameset.ChildFramesets, а не ітерувати лише один рівень глибини |
| Не вдається визначити, чи вказує кадр на файл чи URL | IsFrameLinkToFile не було перевірено | Прочитайте IsFrameLinkToFile разом з FrameDefaultUrl, щоб дізнатися, як розв’язати ціль |
FAQ
Що таке Frameset у Aspose.Words FOSS для .NET?
Він представляє сторінку з фреймами або окремий фрейм на такій сторінці, представлений як Document.Frameset для документів, завантажених з джерела HTML, що базується на фреймах.
Як отримати список усіх кадрів у наборі кадрів?
Ітерувати Frameset.ChildFramesets (a FramesetCollection) за допомогою GetEnumerator() / foreach, рекурсивно переходячи в будь-якого дочірнього, який сам має додаткові ChildFramesets.
Як дізнатися, скільки дочірніх кадрів має Frameset?
Прочитайте FramesetCollection.Count у його властивості ChildFramesets.
Що IsFrameLinkToFile повідомляє вам?
Чи є веб-сторінка або назва файлу документа в FrameDefaultUrl зовнішнім ресурсом, до якого посилається кадр.
API Reference Підсумок
| Клас/Метод | Опис |
|---|---|
Document.Frameset | Кореневий Frameset для документа, завантаженого з HTML джерела, що базується на кадрах |
Frameset | Представляє сторінку з фреймами або окремий фрейм на сторінці з фреймами. |
Frameset.FrameDefaultUrl | URL веб-сторінки або назва файлу документа, що відображається у фреймі |
Frameset.IsFrameLinkToFile | Чи є FrameDefaultUrl зовнішнім пов’язаним ресурсом |
Frameset.ChildFramesets | FramesetCollection дочірніх фреймів та сторінок фреймів |
FramesetCollection | Колекція екземплярів Frameset; Count, GetEnumerator |