Trabalhar com Processamento XML

Trabalhar com Processamento XML

Trabalhar com Processamento XML

Aspose.Cells FOSS for C++ uses a lightweight internal XML layer to read and write the Open XML parts that make up an XLSX file. The XmlDocument, XmlElement, e XmlAttribute As classes formam o núcleo desta camada.


Carregamento de um documento XML

Utilização: XmlDocument::Load Para analisar uma cadeia de caracteres XML ou um ficheiro na árvore do documento em memória:

#include "aspose/cells_foss/XmlDocument.h"

using namespace Aspose::Cells_FOSS;

// Load from string content
XmlDocument doc;
doc.Load("<root><item key=\"a\">value</item></root>");

Construir e guardar XML

Utilização: XmlDocument::Build para construir um documento XML de forma programática, e XmlDocument::SaveToUtf8 para serializá-lo de volta a uma cadeia UTF-8:

XmlDocument doc;
// Build the document structure
auto xml = doc.SaveToUtf8();

Atravessando elementos

XmlElement fornece acesso leve baseado em manopla para valores de elementos, filhos e atributos. Elementos construídos por padrão retornam IsNull() == true, que pode ser utilizado como um seguro zero-check:

XmlElement root = doc.GetRootElement();
if (!root.IsNull()) {
    // Traverse children via GetAttributes
    auto attrs = root.GetAttributes();
}

Trabalhar com atributos

XmlAttribute fornece acesso a pares de nome e valor de atributo em um elemento. Use XmlAttribute::MakeAttribute(name, value) para criar novos atributos:

XmlAttribute attr = XmlAttribute::MakeAttribute("key", "value");
bool isNull = attr.IsNull();

Mapeadores XML internos

A biblioteca usa classes de mapeadores dedicadas para converter objetos do modelo de planilha em memória para e a partir de suas representações XML. Estes são internos à camada de serialização:

Classe MapperResponsabilidade
WorkbookXmlMapperLeia e escreve a parte de relação do livro de trabalho
WorksheetXmlMapperLeia e escreve partes de XML da planilha individual
StylesheetXmlMapperLeia e escreve a parte de estilos.
SharedStringTableXmlMapperLeia e escreve a tabela de cadeias compartilhadas.

Cada mapeador expõe Read e a) Write Estes métodos são chamados internamente de “metodos” (em inglês: methods). XlsxWorkbookSerializer e não são destinados a utilização directa no código de aplicação.


Tratamento de erros

Erros de análise XML lançar XmlParsingException.Obter esta exceção ao carregar XML não confiável ou malformado:

try {
    doc.Load(xmlContent);
} catch (const XmlParsingException& ex) {
    // Handle parse error
}

Dicas e melhores práticas

  • Verificação XmlElement::IsNull() antes de aceder aos dados do elemento os elementos em caminhos faltantes retornam um controle nulo.
  • Utilização: XmlDocument::SaveToUtf8() para obter uma sequência serializada para depuração ou registro de estado XML intermediário.
  • Não instanciar classes de mapeadores (WorkbookXmlMapper, WorksheetXmlMapper, etc.) diretamente no código de aplicação utilização Workbook::Save e a) Workbook(filePath) Em vez disso.
  • XmlParsingException é lançado em XML malformado; sempre envolva cargas de XML externas num bloco try/catch.

Problemas comuns

EmissãoCausa da morteCorreção
IsNull() retorna trueElemento não encontrado no caminho esperadoVerificar a estrutura XML antes de percorrer o sistema .
XmlParsingException em cargaXML malformado ou não UTF-8Validar o XML de entrada antes de passar para Load
A saída do mapeador difere da entradaMudança do modelo antes de salvarCertificar-se de que todas as alterações no modelo são cometidas antes da chamada. Save

Resumo de referência da API

Classe/MétodoDescrição:
XmlDocument::Load(content)Analisar uma cadeia XML
XmlDocument::Build()Construir um documento de forma programática
XmlDocument::SaveToUtf8()Serializar o documento para uma cadeia de caracteres UTF-8 .
XmlElement::IsNull()Verifique se o controle do elemento é válido .
XmlElement::GetValue()Obter o conteúdo de texto do elemento
XmlElement::GetAttributes()Obter a coleção de atributos
XmlAttribute::IsNull()Verifique se o controle de atributo é válido .
XmlAttribute::MakeAttribute(name, value)Criar um novo controle de atributos
XmlParsingExceptionLançado em entrada XML malformada
WorksheetXmlMapperFolha de trabalho interna XML leitura/escrita
WorkbookXmlMapperLivro de trabalho interno XML leitura/escrita

Ver também:

 Português