Framesets
Framesets
Este guia mostra como ler a estrutura legada de páginas com frames em Aspose.Words FOSS para .NET usando as classes Frameset e FramesetCollection, que representam uma página de frames e seus frames filhos quando a estrutura de um documento modela um conjunto de frames.
A Classe Frameset
Frameset representa uma página de frames ou um único frame em uma página de frames. Document.Frameset devolve o Frameset raiz para um documento que foi carregado a partir de uma estrutura HTML com frames. FrameDefaultUrl (string) é a URL da página web ou o nome do arquivo do documento exibido nesse frame. IsFrameLinkToFile (bool) indica se o valor FrameDefaultUrl é um recurso externo ao qual o frame faz link. ChildFramesets devolve um FramesetCollection dos frames filhos e das páginas de frames aninhadas sob este.
Iterando Frames Filhos com FramesetCollection
FramesetCollection implementa IEnumerable<Frameset>, portanto GetEnumerator() suporta iteração foreach sobre os frames que contém. Count informa o número de frames ou páginas de frames na coleção. Combine Count e iteração com ChildFramesets para percorrer recursivamente uma estrutura de página com frames aninhada — cada Frameset filho pode, por sua vez, conter mais ChildFramesets.
Dicas e Melhores Práticas
- Verifique
Document.Framesetparanullantes de ler suas propriedades — a maioria dos documentos não são páginas de frames, portanto essa propriedade só é preenchida quando a fonte HTML usou um layout de frames. - Percorra
ChildFramesetsrecursivamente (em vez de assumir uma estrutura plana de um nível) já que uma página de frames pode aninhar outras páginas de frames dentro de seus frames. - Use
IsFrameLinkToFilepara distinguir um frame que vincula a um recurso externo de um que incorpora o nome de arquivo de um documento diretamente emFrameDefaultUrl. FramesetCollection.Counté uma forma simples de verificar se umFramesettem filhos antes de iterar.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
Document.Frameset é null | O documento não foi carregado a partir de uma fonte HTML baseada em frames | Confirme que o documento de origem realmente utilizou frames HTML antes de confiar nesta propriedade |
Iterar ChildFramesets ignora frames aninhados | Apenas o nível superior foi iterado | Recursar em cada Frameset.ChildFramesets filho em vez de iterar apenas um nível de profundidade |
| Não é possível determinar se um frame aponta para um arquivo ou uma URL | IsFrameLinkToFile não foi verificado | Leia IsFrameLinkToFile junto com FrameDefaultUrl para saber como resolver o destino |
FAQ
O que é um Frameset no Aspose.Words FOSS para .NET?
Ele representa uma página de frames ou um único frame em uma página de frames, exposto como Document.Frameset para documentos carregados a partir de uma fonte HTML baseada em frames.
Como listar todos os frames em um frameset?
Iterar Frameset.ChildFramesets (um FramesetCollection) com GetEnumerator() / foreach, recursivamente em qualquer filho que também possua mais ChildFramesets.
Como descobrir quantos frames filhos um Frameset possui?
Leia FramesetCollection.Count em sua propriedade ChildFramesets.
O que IsFrameLinkToFile lhe diz?
Se a página da web ou o nome do arquivo de documento em FrameDefaultUrl é um recurso externo ao qual o frame está vinculado.
API Reference Resumo
| Classe/Método | Descrição |
|---|---|
Document.Frameset | Raiz Frameset para um documento carregado de uma fonte HTML baseada em frames |
Frameset | Representa uma página de frames ou um único frame em uma página de frames |
Frameset.FrameDefaultUrl | URL da página da web ou nome de arquivo do documento exibido no frame |
Frameset.IsFrameLinkToFile | Se FrameDefaultUrl é um recurso vinculado externo |
Frameset.ChildFramesets | FramesetCollection de quadros filhos e páginas de frames |
FramesetCollection | Coleção de instâncias de Frameset; Count, GetEnumerator |