Framesets
Framesets
Dieser Leitfaden zeigt, wie man die Legacy-Frames-Seitenstruktur in Aspose.Words FOSS für .NET mithilfe der Klassen Frameset und FramesetCollection liest, die eine Frames-Seite und deren untergeordnete Frames darstellen, wenn die Dokumentenstruktur ein Set von Frames modelliert.
Die Frameset-Klasse
Frameset stellt eine Frames-Seite oder einen einzelnen Frame auf einer Frames-Seite dar. Document.Frameset liefert das Wurzel-Frameset für ein Dokument, das aus einer gerahmten HTML-Struktur geladen wurde. FrameDefaultUrl (string) ist die URL der Webseite oder der Dateiname des Dokuments, das in diesem Frame angezeigt wird. IsFrameLinkToFile (bool) gibt an, ob der FrameDefaultUrl-Wert eine externe Ressource ist, auf die der Frame verlinkt. ChildFramesets liefert ein FramesetCollection der untergeordneten Frames und Frames-Seiten, die in diesem verschachtelt sind.
Iterieren von Kind-Frames mit FramesetCollection
FramesetCollection implementiert IEnumerable<Frameset>, sodass GetEnumerator() die foreach-Iteration über die enthaltenen Frames unterstützt. Count gibt die Anzahl der Frames oder Frames-Seiten in der Sammlung zurück. Kombiniere Count und Iteration mit ChildFramesets, um eine verschachtelte Frames-Seitenstruktur rekursiv zu durchlaufen – jedes Kind-Frameset kann selbst weitere ChildFramesets enthalten.
Tipps und bewährte Vorgehensweisen
- Prüfen Sie
Document.Framesetaufnull, bevor Sie dessen Eigenschaften lesen — die meisten Dokumente sind keine Frames-Seiten, daher wird diese Eigenschaft nur gesetzt, wenn die Quell-HTML ein Frames-Layout verwendet hat. - Durchlaufen Sie
ChildFramesetsrekursiv (anstatt eine flache, einstufige Struktur anzunehmen), da eine Frames-Seite weitere Frames-Seiten innerhalb ihrer Frames verschachteln kann. - Verwenden Sie
IsFrameLinkToFile, um einen Frame, der auf eine externe Ressource verlinkt, von einem zu unterscheiden, der einen Dokumentdateinamen direkt inFrameDefaultUrleinbettet. FramesetCollection.Countist eine kostengünstige Methode, um zu prüfen, ob einFramesetKinder hat, bevor man iteriert.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
Document.Frameset ist null | Das Dokument wurde nicht von einer frames-basierten HTML-Quelle geladen | Stellen Sie sicher, dass das Quelldokument tatsächlich HTML-Frames verwendet hat, bevor Sie sich auf diese Eigenschaft verlassen |
Das Durchlaufen von ChildFramesets übersieht verschachtelte Frames | Nur die oberste Ebene wurde durchlaufen | Rekuriere in jedes Kind Frameset.ChildFramesets, anstatt nur eine Ebene tief zu iterieren |
| Kann nicht erkennen, ob ein Frame auf eine Datei oder eine URL zeigt | IsFrameLinkToFile wurde nicht geprüft | Lese IsFrameLinkToFile zusammen mit FrameDefaultUrl, um zu wissen, wie das Ziel aufgelöst werden soll |
FAQ
Was ist ein Frameset in Aspose.Words FOSS für .NET?
Es stellt eine Frames-Seite oder einen einzelnen Frame auf einer Frames-Seite dar, der als Document.Frameset für Dokumente bereitgestellt wird, die aus einer frames-basierten HTML-Quelle geladen werden.
Wie liste ich alle Frames in einem Frameset auf?
Iteriere Frameset.ChildFramesets (ein FramesetCollection) mit GetEnumerator() / foreach und gehe rekursiv in jedes Kind, das selbst weitere ChildFramesets hat.
Wie erfahre ich, wie viele Kind-Frames ein Frameset hat?
Lese FramesetCollection.Count auf seiner ChildFramesets-Eigenschaft.
Was sagt dir IsFrameLinkToFile?
Ob die Webseite oder der Dokumentdateiname in FrameDefaultUrl eine externe Ressource ist, mit der das Frame verlinkt ist.
API Reference Zusammenfassung
| Klasse/Methode | Beschreibung |
|---|---|
Document.Frameset | Root Frameset für ein Dokument, das aus einer frames-basierten HTML-Quelle geladen wurde |
Frameset | Stellt eine Frames-Seite oder einen einzelnen Frame auf einer Frames-Seite dar. |
Frameset.FrameDefaultUrl | Webseiten-URL oder Dokumentdateiname, die im Frame angezeigt wird |
Frameset.IsFrameLinkToFile | Ob FrameDefaultUrl eine extern verlinkte Ressource ist |
Frameset.ChildFramesets | FramesetCollection von untergeordneten Frames und Frame-Seiten |
FramesetCollection | Sammlung von Frameset-Instanzen; Count, GetEnumerator |