Framesets
Framesets
Denna guide visar hur man läser den äldre frames-sidstrukturen i Aspose.Words FOSS för .NET med hjälp av klasserna Frameset och FramesetCollection, som representerar en frames-sida och dess underordnade frames när ett dokuments struktur modellerar en uppsättning frames.
Frameset-klassen
Frameset representerar en frames-sida eller en enskild frame på en frames-sida. Document.Frameset returnerar den rot-Frameset för ett dokument som laddades från en inramad HTML-struktur. FrameDefaultUrl (string) är webbsidans URL eller dokumentfilens namn som visas i den ramen. IsFrameLinkToFile (bool) indikerar om FrameDefaultUrl-värdet är en extern resurs som ramen länkar till. ChildFramesets returnerar en FramesetCollection av de underordnade ramarna och frames-sidorna som är inbäddade under denna.
Iterera underordnade frames med FramesetCollection
FramesetCollection implementerar IEnumerable<Frameset>, så GetEnumerator() stödjer foreach iteration över de frames den innehåller. Count rapporterar antalet frames eller frames-sidor i samlingen. Kombinera Count och iteration med ChildFramesets för att gå igenom en nästlad frames-sidstruktur rekursivt — varje underordnad Frameset kan själv innehålla ytterligare ChildFramesets.
Tips och bästa praxis
- Kontrollera
Document.Framesetförnullinnan du läser dess egenskaper — de flesta dokument är inte frames pages, så denna egenskap fylls endast i när käll-HTML använde en frames-layout. - Gå igenom
ChildFramesetsrekursivt (istället för att anta en platt, endimensionell struktur) eftersom en frames page kan nästla ytterligare frames pages inom sina frames. - Använd
IsFrameLinkToFileför att skilja en ram som länkar till en extern resurs från en som bäddar in ett dokumentfilnamn direkt iFrameDefaultUrl. FramesetCollection.Countär ett billigt sätt att kontrollera om enFramesethar några barn innan iteration.
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
Document.Frameset är null | Dokumentet laddades inte från en frames-baserad HTML-källa | Bekräfta att källdokumentet faktiskt använde HTML-ramar innan du förlitar dig på den här egenskapen |
Iterering av ChildFramesets missar nästlade ramar | Endast topnivån itererades | Rekursa i varje barn Frameset.ChildFramesets i stället för att iterera ett nivå djupt |
| Kan inte avgöra om en ram pekar på en fil eller en URL | IsFrameLinkToFile kontrollerades inte | Läs IsFrameLinkToFile tillsammans med FrameDefaultUrl för att veta hur du ska lösa målet |
FAQ
Vad är ett Frameset i Aspose.Words FOSS för .NET?
Det representerar en frames page eller en enskild ram på en frames page, exponerad som Document.Frameset för dokument som hämtas från en frames-baserad HTML-källa.
Hur listar jag alla ramar i ett frameset?
Iterera Frameset.ChildFramesets (en FramesetCollection) med GetEnumerator() / foreach, och rekursivt gå in i varje barn som själv har ytterligare ChildFramesets.
Hur vet jag hur många barnramar ett Frameset har?
Läs FramesetCollection.Count på dess ChildFramesets-egenskap.
Vad säger IsFrameLinkToFile till dig?
Om webbsidan eller dokumentfilnamnet i FrameDefaultUrl är en extern resurs som ramen länkas till.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
Document.Frameset | Rot Frameset för ett dokument som lästs in från en ram-baserad HTML-källa |
Frameset | Representerar en frames-sida eller en enskild ram på en frames-sida |
Frameset.FrameDefaultUrl | Webbsidans URL eller dokumentfilnamn som visas i ramen |
Frameset.IsFrameLinkToFile | Om FrameDefaultUrl är en extern länkad resurs |
Frameset.ChildFramesets | FramesetCollection för underramar och ram-sidor |
FramesetCollection | Samling av Frameset-instanser; Count, GetEnumerator |