Framesets
Framesets
Ten przewodnik pokazuje, jak odczytać starszą strukturę stron z ramkami w Aspose.Words FOSS dla .NET, używając klas Frameset i FramesetCollection, które reprezentują stronę z ramkami oraz jej podrzędne ramki, gdy struktura dokumentu modeluje zestaw ramek.
Klasa Frameset
Frameset reprezentuje stronę z ramkami lub pojedynczą ramkę na stronie z ramkami. Document.Frameset zwraca korzeń Frameset dla dokumentu, który został wczytany z ramkowanej struktury HTML. FrameDefaultUrl (string) jest adresem URL strony internetowej lub nazwą pliku dokumentu wyświetlanego w tej ramce. IsFrameLinkToFile (bool) wskazuje, czy wartość FrameDefaultUrl jest zasobem zewnętrznym, do którego odwołuje się ramka. ChildFramesets zwraca FramesetCollection podrzędnych ramek i stron z ramkami zagnieżdżonych pod tą.
Iterowanie podrzędnych ramek przy użyciu FramesetCollection
FramesetCollection implementuje IEnumerable<Frameset>, więc GetEnumerator() obsługuje iterację foreach po ramkach, które zawiera. Count podaje liczbę ramek lub stron z ramkami w kolekcji. Połącz Count i iterację z ChildFramesets, aby rekurencyjnie przechodzić zagnieżdżoną strukturę stron z ramkami — każda podrzędna Frameset może sama zawierać kolejne ChildFramesets.
Wskazówki i najlepsze praktyki
- Sprawdź
Document.Framesetpod kątemnullprzed odczytaniem jego właściwości — większość dokumentów nie jest stronami ramkowymi, więc ta właściwość jest wypełniana tylko wtedy, gdy źródłowy HTML używał układu ramek. - Przeglądaj
ChildFramesetsrekurencyjnie (zamiast zakładać płaską, jednowarstwową strukturę), ponieważ strona ramek może zawierać kolejne strony ramek wewnątrz swoich ramek. - Użyj
IsFrameLinkToFile, aby odróżnić ramkę, która odwołuje się do zewnętrznego zasobu, od tej, która osadza nazwę pliku dokumentu bezpośrednio wFrameDefaultUrl. FramesetCollection.Countto tania metoda sprawdzenia, czyFramesetma jakiekolwiek elementy potomne przed iteracją.
Typowe problemy
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
Document.Frameset jest null | Dokument nie został wczytany ze źródła HTML opartego na ramkach | Potwierdź, że dokument źródłowy rzeczywiście używał ramek HTML, zanim polegasz na tej właściwości |
Iterowanie ChildFramesets pomija zagnieżdżone ramki | Iterowano tylko najwyższy poziom | Rekurencyjnie przechodź do każdego dziecka Frameset.ChildFramesets, zamiast iterować tylko jeden poziom w dół |
| Nie można stwierdzić, czy ramka wskazuje na plik, czy na URL | IsFrameLinkToFile nie został sprawdzony | Odczytaj IsFrameLinkToFile wraz z FrameDefaultUrl, aby wiedzieć, jak rozwiązać cel |
FAQ
Czym jest Frameset w Aspose.Words FOSS dla .NET?
Reprezentuje stronę ramek lub pojedynczą ramkę na stronie ramek, udostępnioną jako Document.Frameset dla dokumentów ładowanych ze źródła HTML opartego na ramkach.
Jak wylistować wszystkie ramki w zestawie ramek?
Iteruj Frameset.ChildFramesets (a FramesetCollection) przy użyciu GetEnumerator() / foreach, rekurencyjnie wchodząc w każde dziecko, które samo posiada dalsze ChildFramesets.
Jak sprawdzić, ile ramek potomnych ma zestaw ramek?
Odczytaj FramesetCollection.Count z jego właściwości ChildFramesets.
Co IsFrameLinkToFile mówi?
Czy strona internetowa lub nazwa pliku dokumentu w FrameDefaultUrl jest zasobem zewnętrznym, do którego ramka jest podłączona.
API Reference Podsumowanie
| Klasa/Metoda | Opis |
|---|---|
Document.Frameset | Główny Frameset dla dokumentu załadowanego ze źródła HTML opartego na ramkach |
Frameset | Reprezentuje stronę z ramkami lub pojedynczą ramkę na stronie z ramkami |
Frameset.FrameDefaultUrl | Adres URL strony internetowej lub nazwa pliku dokumentu wyświetlanego w ramce |
Frameset.IsFrameLinkToFile | Czy FrameDefaultUrl jest zewnętrznym zasobem linkowanym |
Frameset.ChildFramesets | FramesetCollection podrzędnych ramek i stron ramek |
FramesetCollection | Zbiór Frameset instancji; Count, GetEnumerator |