Framesets
Framesets
Questa guida mostra come leggere la struttura legacy di pagine con frame in Aspose.Words FOSS per .NET utilizzando le classi Frameset e FramesetCollection, che rappresentano una pagina con frame e i suoi frame figli quando la struttura di un documento modella un insieme di frame.
La classe Frameset
Frameset rappresenta una pagina con frame o un singolo frame su una pagina con frame. Document.Frameset restituisce la radice Frameset per un documento caricato da una struttura HTML con frame. FrameDefaultUrl (string) è l’URL della pagina web o il nome file del documento visualizzato in quel frame. IsFrameLinkToFile (bool) indica se il valore FrameDefaultUrl è una risorsa esterna a cui il frame collega. ChildFramesets restituisce un FramesetCollection dei frame figli e delle pagine con frame nidificate sotto questa.
Iterare i frame figli con FramesetCollection
FramesetCollection implementa IEnumerable<Frameset>, quindi GetEnumerator() supporta l’iterazione foreach sui frame che contiene. Count segnala il numero di frame o pagine con frame nella collezione. Combina Count e l’iterazione con ChildFramesets per percorrere ricorsivamente una struttura di pagine con frame nidificate — ogni Frameset figlio può contenere ulteriori ChildFramesets.
Suggerimenti e migliori pratiche
- Controlla
Document.Framesetpernullprima di leggere le sue proprietà — la maggior parte dei documenti non sono pagine con frame, quindi questa proprietà viene popolata solo quando il HTML di origine ha utilizzato un layout a frame. - Scorri
ChildFramesetsin modo ricorsivo (piuttosto che presumere una struttura piatta a un livello) poiché una pagina con frame può annidare ulteriori pagine con frame all’interno dei suoi frame. - Usa
IsFrameLinkToFileper distinguere un frame che collega a una risorsa esterna da uno che incorpora direttamente il nome di un file documento inFrameDefaultUrl. FramesetCollection.Countè un modo semplice per verificare se unFramesetha dei figli prima di iterare.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
Document.Frameset è null | Il documento non è stato caricato da una sorgente HTML basata su frame | Conferma che il documento sorgente abbia effettivamente usato frame HTML prima di fare affidamento su questa proprietà |
Iterare ChildFramesets non rileva i frame nidificati | Solo il livello superiore è stato iterato | Ricorsione in ogni Frameset.ChildFramesets figlio anziché iterare a un livello di profondità |
| Impossibile capire se un frame punta a un file o a un URL | IsFrameLinkToFile non è stato controllato | Leggi IsFrameLinkToFile insieme a FrameDefaultUrl per sapere come risolvere il target |
FAQ
Che cos’è un Frameset in Aspose.Words FOSS per .NET?
Rappresenta una pagina con frame o un singolo frame su una pagina con frame, esposto come Document.Frameset per i documenti caricati da una fonte HTML basata su frame.
Come posso elencare tutti i frame in un frameset?
Itera Frameset.ChildFramesets (un FramesetCollection) con GetEnumerator() / foreach, ricorsivamente in qualsiasi figlio che a sua volta abbia ulteriori ChildFramesets.
Come posso sapere quanti frame figlio ha un Frameset?
Leggi FramesetCollection.Count sulla sua proprietà ChildFramesets.
Cosa ti dice IsFrameLinkToFile?
Se la pagina web o il nome del file documento in FrameDefaultUrl è una risorsa esterna a cui il frame è collegato.
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
Document.Frameset | Root Frameset per un documento caricato da una sorgente HTML basata su frames |
Frameset | Rappresenta una pagina con frame o un singolo frame su una pagina con frame |
Frameset.FrameDefaultUrl | URL della pagina web o nome file del documento visualizzato nel frame |
Frameset.IsFrameLinkToFile | Se FrameDefaultUrl è una risorsa collegata esternamente |
Frameset.ChildFramesets | FramesetCollection dei frame figlio e delle pagine dei frame |
FramesetCollection | Raccolta di istanze di Frameset; Count, GetEnumerator |