Class XMLUtility
Utilitários diversos para trabalhar com XML
Inherited Members
Namespace: Unimake.Business.DFe.Utility
Assembly: Unimake.Business.DFe.dll
Syntax
public static class XMLUtility
Methods
CalcularDVChave(string)
Gerar o dígito da chave da NFe, CTe, MDFe ou NFCe
Declaration
public static int CalcularDVChave(string chave)
Parameters
| Type | Name | Description |
|---|---|---|
| string | chave | Chave do DFe (sem o dígito) que deve ser calculado o dígito verificador. |
Returns
| Type | Description |
|---|---|
| int | Dígito verificador |
ChecarChaveDFe(string)
Executa uma verificação simples para garantir que a chave do DFe (NFe, CTe, MDfe, NFCe, CTeOS) é valida, se tiver erros retorna exceção.
Declaration
public static void ChecarChaveDFe(string chave)
Parameters
| Type | Name | Description |
|---|---|---|
| string | chave | Chave do DFe a ser verificada |
Examples
try { XMLUtility.ChecarChaveDFe("41201280568835000181570010000004841004185096"); } catch(Exception ex) { //Se chave tiver algum erro, vai retornar uma exceção. MessageBox.Show(ex.Message); }
ClearExtraSpaces(string)
Limpar espaços desnecessários da string, por exemplo: Espaços duplos no meio da sentença, espaços no inicio ou final da sentença.
Declaration
public static string ClearExtraSpaces(string content)
Parameters
| Type | Name | Description |
|---|---|---|
| string | content |
Returns
| Type | Description |
|---|---|
| string | Retorna string sem os espaços desnecessários |
Examples
var texto = " Eu vou ao supermercado comprar alimentos. "; texto = XMLUtility.LimparEspacoDesnecessario(texto); MessageBox.Show(texto); // Retorno será: "Eu vou ao supermercado comprar alimentos."
See Also
Deserializar<T>(string)
Desserializar XML (Converte o XML para um objeto)
Declaration
public static T Deserializar<T>(string xml) where T : new()
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | String do XML a ser desserializado |
Returns
| Type | Description |
|---|---|
| T | Retorna o objeto com o conteúdo do XML desserializado |
Type Parameters
| Name | Description |
|---|---|
| T | Tipo do objeto |
Deserializar<T>(XmlDocument)
Desserializar XML (Converte o XML para um objeto)
Declaration
public static T Deserializar<T>(XmlDocument doc) where T : new()
Parameters
| Type | Name | Description |
|---|---|---|
| XmlDocument | doc | Conteúdo do XML a ser desserializado |
Returns
| Type | Description |
|---|---|
| T | Retorna o objeto com o conteúdo do XML desserializado |
Type Parameters
| Name | Description |
|---|---|
| T | Tipo do objeto |
DetectDFeType(string)
Detectar qual o tipo de documento fiscal eletrônico do XML
Declaration
public static TipoDFe DetectDFeType(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | XML a ser analisado |
Returns
| Type | Description |
|---|---|
| TipoDFe | Retorna o tipo do documento eletrônico |
DetectDFeType(XmlDocument)
Detectar qual o tipo de documento fiscal eletrônico do XML
Declaration
public static TipoDFe DetectDFeType(XmlDocument xml)
Parameters
| Type | Name | Description |
|---|---|---|
| XmlDocument | xml | XML a ser analisado |
Returns
| Type | Description |
|---|---|
| TipoDFe | Retorna o tipo do documento eletrônico |
DetectEventByDFeType(string)
Retorna o tipo de documento fiscal com base no XML de evento.
Declaration
public static TipoDFe DetectEventByDFeType(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | XML válido de evento. |
Returns
| Type | Description |
|---|---|
| TipoDFe |
DetectEventoCTeType(string)
Detectar qual o tipo de evento do CT-e.
Declaration
public static TipoEventoCTe DetectEventoCTeType(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | XML a ser analisado |
Returns
| Type | Description |
|---|---|
| TipoEventoCTe | Retorna o tipo do evento do CT-e |
DetectEventoCTeType(XmlDocument)
Detectar qual o tipo de evento do CT-e.
Declaration
public static TipoEventoCTe DetectEventoCTeType(XmlDocument xml)
Parameters
| Type | Name | Description |
|---|---|---|
| XmlDocument | xml | XML a ser analisado |
Returns
| Type | Description |
|---|---|
| TipoEventoCTe | Retorna o tipo do evento do CT-e |
DetectEventoMDFeType(string)
Detectar qual o tipo de evento do MDF-e.
Declaration
public static TipoEventoMDFe DetectEventoMDFeType(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | XML a ser analisado |
Returns
| Type | Description |
|---|---|
| TipoEventoMDFe | Retorna o tipo do evento do MDF-e |
DetectEventoMDFeType(XmlDocument)
Detectar qual o tipo de evento do MDF-e.
Declaration
public static TipoEventoMDFe DetectEventoMDFeType(XmlDocument xml)
Parameters
| Type | Name | Description |
|---|---|---|
| XmlDocument | xml | XML a ser analisado |
Returns
| Type | Description |
|---|---|
| TipoEventoMDFe | Retorna o tipo do evento do MDF-e |
DetectEventoNF3eType(string)
Detectar qual o tipo de evento do NF3e.
Declaration
public static TipoEventoNF3e DetectEventoNF3eType(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | XML a ser analisado |
Returns
| Type | Description |
|---|---|
| TipoEventoNF3e | Retorna o tipo do evento do NF3e |
DetectEventoNF3eType(XmlDocument)
Detectar qual o tipo de evento do NF3e.
Declaration
public static TipoEventoNF3e DetectEventoNF3eType(XmlDocument xml)
Parameters
| Type | Name | Description |
|---|---|---|
| XmlDocument | xml | XML a ser analisado |
Returns
| Type | Description |
|---|---|
| TipoEventoNF3e | Retorna o tipo do evento do NF3e |
DetectEventoNFeType(string)
Detectar qual o tipo de evento do documento fiscal eletrônico do XML
Declaration
public static TipoEventoNFe DetectEventoNFeType(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | XML a ser analisado |
Returns
| Type | Description |
|---|---|
| TipoEventoNFe | Retorna o tipo do evento do documento eletrônico |
DetectEventoNFeType(XmlDocument)
Detectar qual o tipo de evento do documento fiscal eletrônico do XML
Declaration
public static TipoEventoNFe DetectEventoNFeType(XmlDocument xml)
Parameters
| Type | Name | Description |
|---|---|---|
| XmlDocument | xml | XML a ser analisado |
Returns
| Type | Description |
|---|---|
| TipoEventoNFe | Retorna o tipo do evento do documento eletrônico |
DetectXMLType(XmlDocument)
De acordo com os dados do XML será detectado de qual tipo ele é: XML de NFe, CTe, Consulta Status, Consulta Situação, Evento, etc...
Declaration
public static TipoXML DetectXMLType(XmlDocument xmlDoc)
Parameters
| Type | Name | Description |
|---|---|---|
| XmlDocument | xmlDoc |
Returns
| Type | Description |
|---|---|
| TipoXML |
EncryptTagAssinaturaNFSe(PadraoNFSe, XmlDocument, X509Certificate2)
Encripta tag "Assinatura" dos padrões DSF e PAULISTANA de NFSe
Declaration
public static XmlDocument EncryptTagAssinaturaNFSe(PadraoNFSe padraoNFSe, XmlDocument conteudoXML, X509Certificate2 certificado)
Parameters
| Type | Name | Description |
|---|---|---|
| PadraoNFSe | padraoNFSe | Padrão de NFSe |
| XmlDocument | conteudoXML | Conteúdo XML a ser encriptado |
| X509Certificate2 | certificado | Certificado Digital |
Returns
| Type | Description |
|---|---|
| XmlDocument | XML com tag encriptada |
ExtrairConteudoChaveDFe(string)
Extrair conteúdo da chave do documento fiscal eletrônico (NFe, NFCe, CTe, MDFe, etc...) com elementos separados.
Declaration
public static XMLUtility.ConteudoChaveDFe ExtrairConteudoChaveDFe(string chave)
Parameters
| Type | Name | Description |
|---|---|---|
| string | chave | Chave do DFe para extrair o conteúdo |
Returns
| Type | Description |
|---|---|
| XMLUtility.ConteudoChaveDFe | Estrutura contendo o valor de cada elemento que compõe a chave do DFe |
Examples
var conteudo = XMLUtility.ExtrairConteudoChaveDFe("41210212345678000112650110000000069123456787");
Console.WriteLine(conteudo.UFEmissor); //Output: PR Console.WriteLine(conteudo.AnoEmissao); //Output: 21 Console.WriteLine(conteudo.MesEmissao); //Output: 02 Console.WriteLine(conteudo.CNPJCPFEmissor); //Output: 12345678000112 Console.WriteLine(conteudo.Modelo); //Output: NFCe Console.WriteLine(conteudo.Serie); //Output: 11 Console.WriteLine(conteudo.NumeroDoctoFiscal); //Output: 6 Console.WriteLine(conteudo.TipoEmissao); //Output: ContingenciaOffLine Console.WriteLine(conteudo.CodigoNumerico); //Output: 12345678 Console.WriteLine(conteudo.DigitoVerificador); //Output: 7
GerarCodigoNumerico(int, int)
Gera um número randômico para ser utilizado no Código Numérico da NFe, NFCe, CTe, MDFe, etc...
Declaration
public static int GerarCodigoNumerico(int numeroNF, int tamanho = 8)
Parameters
| Type | Name | Description |
|---|---|---|
| int | numeroNF | Número da NF, CT ou MDF |
| int | tamanho | Quantidade de dígitos do código numérico |
Returns
| Type | Description |
|---|---|
| int | Código numérico |
GetChaveDFe(string)
Busca o número da chave do Documento Fiscal Eletrônico no XML do Documento Fiscal Eletrônico
Declaration
public static string GetChaveDFe(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML para busca da chave |
Returns
| Type | Description |
|---|---|
| string | Chave do DFe (Documento Fiscal Eletrônico = NFe, NFCe, CTe, etc...) |
GetChaveDFe(string, TipoDFe)
Busca o número da chave do Documento Fiscal Eletrônico no XML do Documento Fiscal Eletrônico
Declaration
public static string GetChaveDFe(string xml, TipoDFe typeDFe)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML para busca da chave |
| TipoDFe | typeDFe | Tipo do DFe |
Returns
| Type | Description |
|---|---|
| string | Chave do DFe (Documento Fiscal Eletrônico = NFe, NFCe, CTe, etc...) |
GetChaveEventoCTe(string)
Busca o número da chave do evento do CT-e
Declaration
public static string GetChaveEventoCTe(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML para busca da chave |
Returns
| Type | Description |
|---|---|
| string | Chave do evento do CT-e |
GetChaveEventoCTe(string, TipoEventoCTe)
Busca o número da chave do evento do CT-e
Declaration
public static string GetChaveEventoCTe(string xml, TipoEventoCTe typeEventoCTe)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML para busca da chave |
| TipoEventoCTe | typeEventoCTe | Tipo de evento do CTe |
Returns
| Type | Description |
|---|---|
| string | Chave do evento do CT-e |
GetChaveEventoMDFe(string)
Busca o número da chave do evento do MDF-e
Declaration
public static string GetChaveEventoMDFe(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML para busca da chave |
Returns
| Type | Description |
|---|---|
| string | Chave do evento do MDF-e |
GetChaveEventoMDFe(string, TipoEventoMDFe)
Busca o número da chave do evento do MDF-e
Declaration
public static string GetChaveEventoMDFe(string xml, TipoEventoMDFe typeEventoMDFe)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML para busca da chave |
| TipoEventoMDFe | typeEventoMDFe | Tipo do evento do MDFe |
Returns
| Type | Description |
|---|---|
| string | Chave do evento do MDF-e |
GetChaveEventoNF3e(string)
Busca o número da chave do evento do NF3e
Declaration
public static string GetChaveEventoNF3e(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML para busca da chave |
Returns
| Type | Description |
|---|---|
| string | Chave do evento do NF3e |
GetChaveEventoNF3e(string, TipoEventoNF3e)
Busca o número da chave do evento do NF3e
Declaration
public static string GetChaveEventoNF3e(string xml, TipoEventoNF3e typeEventoNF3e)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML para busca da chave |
| TipoEventoNF3e | typeEventoNF3e | Tipo do evento do NF3e |
Returns
| Type | Description |
|---|---|
| string | Chave do evento do NF3e |
GetChaveEventoNFe(string)
Busca o número da chave do Documento Fiscal Eletrônico no XML do Documento Fiscal Eletrônico
Declaration
public static string GetChaveEventoNFe(string xml)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML para busca da chave |
Returns
| Type | Description |
|---|---|
| string | Chave do DFe (Documento Fiscal Eletrônico = NFe, NFCe, CTe, etc...) |
GetChaveEventoNFe(string, TipoEventoNFe)
Busca o número da chave do Documento Fiscal Eletrônico no XML do Documento Fiscal Eletrônico
Declaration
public static string GetChaveEventoNFe(string xml, TipoEventoNFe typeEventoDFe)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML para busca da chave |
| TipoEventoNFe | typeEventoDFe | Tipo do Evento DFe |
Returns
| Type | Description |
|---|---|
| string | Chave do evento do DFe (Documento Fiscal Eletrônico = NFe, NFCe, CTe, etc...) |
ImproveInvalidCharacterExceptionInXML(string, XmlException)
Melhorar a mensagem de exceção quando é um erro de caracteres inválidos no XML
Declaration
public static void ImproveInvalidCharacterExceptionInXML(string xml, XmlException ex)
Parameters
| Type | Name | Description |
|---|---|---|
| string | xml | Conteúdo do XML |
| XmlException | ex | Exceção gerada inicialmente |
MontarChaveCTe(ref ConteudoChaveDFe)
Monta a chave do CTe com base nos valores informados
Declaration
public static string MontarChaveCTe(ref XMLUtility.ConteudoChaveDFe conteudoChaveDFe)
Parameters
| Type | Name | Description |
|---|---|---|
| XMLUtility.ConteudoChaveDFe | conteudoChaveDFe | Conteúdos do CTe necessários para montagem da chave |
Returns
| Type | Description |
|---|---|
| string | Chave do CTe |
MontarChaveDFe(UFBrasil, DateTime, string, ModeloDFe, int, int, TipoEmissao, string)
Gerar a chave dos seguintes documentos fiscais eletrônicos: NFe, NFCe, CTe, MFDe e CTeOS.
Declaration
public static string MontarChaveDFe(UFBrasil cUF, DateTime dhEmi, string cnpjcpf, ModeloDFe mod, int serie, int nNF, TipoEmissao tpEmis, string cNF = "")
Parameters
| Type | Name | Description |
|---|---|---|
| UFBrasil | cUF | UF do emitente |
| DateTime | dhEmi | Data de emissão do documento |
| string | cnpjcpf | CNPJ ou CPF do emitente |
| ModeloDFe | mod | Código do modelo do documento fiscal eletrônicos |
| int | serie | Série do documento fiscal eletrônico |
| int | nNF | Número da nota fiscal |
| TipoEmissao | tpEmis | Tipo de emissão (Tag tpEmis) |
| string | cNF | Código numérico randômico (Deixe em branco ou nulo para que a DLL gera este código para você) |
Returns
| Type | Description |
|---|---|
| string | Retorna a chave, completa, do documento fiscal eletrônico com o dígito verificar calculado e concatenado a chave |
MontarChaveMDFe(ref ConteudoChaveDFe)
Monta a chave do MDFe com base nos valores informados
Declaration
public static string MontarChaveMDFe(ref XMLUtility.ConteudoChaveDFe conteudoChaveDFe)
Parameters
| Type | Name | Description |
|---|---|---|
| XMLUtility.ConteudoChaveDFe | conteudoChaveDFe | Conteúdos do MDFe necessários para montagem da chave |
Returns
| Type | Description |
|---|---|
| string | Chave do MDFe |
MontarChaveNF3e(ref ConteudoChaveDFe)
Monta a chave do NF3e com base nos valores informados
Declaration
public static string MontarChaveNF3e(ref XMLUtility.ConteudoChaveDFe conteudoChaveDFe)
Parameters
| Type | Name | Description |
|---|---|---|
| XMLUtility.ConteudoChaveDFe | conteudoChaveDFe | Conteúdos do NF3e necessários para montagem da chave |
Returns
| Type | Description |
|---|---|
| string | Chave do NF3e |
MontarChaveNFCom(ref ConteudoChaveDFe)
Monta a chave do CTe com base nos valores informados
Declaration
public static string MontarChaveNFCom(ref XMLUtility.ConteudoChaveDFe conteudoChaveDFe)
Parameters
| Type | Name | Description |
|---|---|---|
| XMLUtility.ConteudoChaveDFe | conteudoChaveDFe | Conteúdos do CTe necessários para montagem da chave |
Returns
| Type | Description |
|---|---|
| string | Chave do CTe |
MontarChaveNFe(ref ConteudoChaveDFe)
Monta a chave da NFe com base nos valores informados
Declaration
public static string MontarChaveNFe(ref XMLUtility.ConteudoChaveDFe conteudoChaveDFe)
Parameters
| Type | Name | Description |
|---|---|---|
| XMLUtility.ConteudoChaveDFe | conteudoChaveDFe | Conteúdos da NFe necessários para montagem da chave |
Returns
| Type | Description |
|---|---|
| string | Chave da NFe |
Serializar(object, List<TNameSpace>)
Serializar o objeto (Converte o objeto para XML)
Declaration
public static XmlDocument Serializar(object objeto, List<XMLUtility.TNameSpace> namespaces = null)
Parameters
| Type | Name | Description |
|---|---|---|
| object | objeto | Objeto a ser serializado |
| List<XMLUtility.TNameSpace> | namespaces | Namespaces a serem adicionados no XML |
Returns
| Type | Description |
|---|---|
| XmlDocument | XML |
Serializar(object, XmlRootAttribute, List<TNameSpace>)
Declaration
public static XmlDocument Serializar(object obj, XmlRootAttribute xmlRootAttribute, List<XMLUtility.TNameSpace> namespaces = null)
Parameters
| Type | Name | Description |
|---|---|---|
| object | obj | |
| XmlRootAttribute | xmlRootAttribute | |
| List<XMLUtility.TNameSpace> | namespaces |
Returns
| Type | Description |
|---|---|
| XmlDocument |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException |
Serializar<T>(T, List<TNameSpace>)
Serializar o objeto (Converte o objeto para XML)
Declaration
public static XmlDocument Serializar<T>(T objeto, List<XMLUtility.TNameSpace> namespaces = null) where T : new()
Parameters
| Type | Name | Description |
|---|---|---|
| T | objeto | Objeto a ser serializado |
| List<XMLUtility.TNameSpace> | namespaces | Namespaces a serem adicionados no XML |
Returns
| Type | Description |
|---|---|
| XmlDocument | XML |
Type Parameters
| Name | Description |
|---|---|
| T | Tipo do objeto |
TagExist(XmlElement, string)
Busca o nome de uma determinada TAG em um Elemento do XML para ver se existe, se existir retorna seu conteúdo da TAG.
Declaration
public static bool TagExist(XmlElement xmlElement, string tagName)
Parameters
| Type | Name | Description |
|---|---|---|
| XmlElement | xmlElement | Elemento do XML onde será pesquisado o Nome da TAG |
| string | tagName | Nome da Tag que será pesquisado |
Returns
| Type | Description |
|---|---|
| bool | Conteúdo da tag |
TagRead(XmlElement, string)
Busca o nome de uma determinada TAG em um Elemento do XML para ver se existe, se existir retorna seu conteúdo da TAG.
Declaration
public static string TagRead(XmlElement xmlElement, string tagName)
Parameters
| Type | Name | Description |
|---|---|---|
| XmlElement | xmlElement | Elemento do XML onde será pesquisado o Nome da TAG |
| string | tagName | Nome da Tag que será pesquisado |
Returns
| Type | Description |
|---|---|
| string | Conteúdo da tag |
TipoCNPJ(string)
Verifica se o CNPJ é do tipo alfanumérico ou somente numérico.
Declaration
public static string TipoCNPJ(string cnpj)
Parameters
| Type | Name | Description |
|---|---|---|
| string | cnpj | CNPJ com ou sem máscara |
Returns
| Type | Description |
|---|---|
| string | "A" se for alfa-numérico, "N" se for numérico, ou "I" se tiver outro padrão (inválido). |
UnescapeReservedCharacters(string)
Tratar caracteres especiais existentes na string substituindo por escape. Caracteres substituídos: & < > \ ' Escapes utilizados: & < > " '
Declaration
public static string UnescapeReservedCharacters(string content)
Parameters
| Type | Name | Description |
|---|---|---|
| string | content | String a ser tratada |
Returns
| Type | Description |
|---|---|
| string | string com os caracteres especiais substituídos pelos seus escapes |
Examples
var texto = "Dias \ Dias"; texto = XMLUtility.TratarCaracterEspecial(texto); MessageBox.Show(texto); // Retorno será: "Dias " Dias"