COMO: Utilizar a propriedade de codificação com Classes System.XML no Visual Basic .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 317169
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 308061.

O namespace do .NET Framework Class Library seguinte é mencionado neste artigo:
  • System.XML

NESTA TAREFA

Sumário
Este artigo passo a passo explica como usar a propriedade Encoding com XML no .NET Framework. A declaração da codificação na declaração XML identifica o formato de codificação dos dados XML. No namespace System.XML , a propriedade de codificação das classes identifica o formato de codificação.

O namespace System.XML no .NET Framework inclui classes a seguir têm a propriedade de codificação :
  • XmlDeclaration : representa o nó de declaração XML
  • XmlParserContext : fornece as informações contexto necessárias para as classes de leitor XML analisar um fragmento XML
  • XmlTextReader : analisador de modelo de recepção; fornece acesso somente de encaminhamento rápido, que não são armazenados em cache a dados XML
  • XmlValidatingReader : valida documentos XML contra DTD, XDR ou XSD
A propriedade de codificação é uma seqüência de caracteres não fazem distinção entre maiúsculas e minúsculas, como "UTF-8" ou "ISO-8859-1" com a classe XmlDeclaration . Com as outras classes, a propriedade Encoding é do tipo classe System.Text.Encoding .

back to the top

A declaração de codificação

Especificar a declaração da codificação na seção de declaração XML do documento XML. Por exemplo, a declaração a seguir indica que o documento está no formato de codificação Unicode UTF-16:
<?xml version="1.0" encoding="UTF-16"?>				
Observe que essa declaração especifica apenas o formato de codificação de um documento XML e não modificar ou controlar o formato de codificação real dos dados.

Por exemplo, se você tiver os dados XML reais no formato de codificação UTF-8, mas a declaração da codificação é definida como ISO-8859-1, você recebe mensagens de erro semelhantes à seguinte quando você analisar o documento:
Há dados inválidos no nível da raiz. Linha n, posição n.
Para converter o formato de codificação real dos dados, você deve usar as classes no namespace System.Text.Encoding .

O exemplo a seguir mostra como definir ou obter a declaração da codificação de um documento XML.
  1. Salvar os seguintes dados em um novo documento XML chamado "Q308061.xml".
    <?xml version='1.0' encoding='ISO-8859-1'?><Collection>   <Book>      <Title>Priciple of Relativity</Title>      <Author>Albert Einstein</Author>      <Genre>Physics</Genre>   </Book>   <Book>      <Title>Cosmos</Title>      <Author>Carl Sagan</Author>      <Genre>Cosmology</Genre>   </Book></Collection>					
  2. Crie um novo aplicativo console Visual Basic .NET e cole o código a seguir no arquivo Module1.vb.
    Imports SystemImports System.XmlModule Module1   Sub Main()      Try         ' Load the XML document.         Dim doc As XmlDocument = New XmlDocument()         doc.Load("Q308061.xml")         ' The first child of a standard XML document is the XML declaration.         ' Following code assumes and reads the first child as the XmlDeclaration.         If (doc.FirstChild.NodeType = XmlNodeType.XmlDeclaration) Then            ' Get the encoding declaration.            Dim decl As XmlDeclaration            decl = CType(doc.FirstChild, XmlDeclaration)            Console.WriteLine("Encoding declaration:" & vbNewLine & vbNewLine & " Before = " & decl.Encoding)            ' Set the encoding declaration.            decl.Encoding = "UTF-16"            Console.WriteLine(" After = " & (CType(doc.FirstChild, XmlDeclaration)).Encoding & vbNewLine)         End If      Catch xmlex As XmlException         Console.WriteLine("{0}", xmlex.Message)      Catch ex As Exception         Console.WriteLine("{0}", ex.Message)      End Try   End SubEnd Module					
  3. Compilar e executar o aplicativo.
Observação : arquivo Q308061.xml O deve estar no mesmo diretório que o arquivo executável.

back to the top

A propriedade de codificação dos leitores

XmlTextReader e as classes XmlValidatingReader fornecem uma propriedade de codificação somente leitura. Essas classes somente ler o valor de declaração de codificação e não determinam o formato de codificação real dos dados.

A seguir está um exemplo de código do Visual Basic .NET que mostra como acessar o atributo de codificação de um documento XML. Para executar esse exemplo, cole o seguinte código no bloco de código de exemplo anterior tente :
         ' Reading the encoding using the reader classes.         Dim rdr As XmlTextReader = New XmlTextReader("Q308061.xml")         rdr.Read()         Console.WriteLine("Encoding from the reader: {0}" & vbNewLine & vbNewLine, rdr.Encoding.EncodingName)				
back to the top

REFERÊNCIAS

Para obter mais informações sobre classes System.XML e System.Text , consulte os tópicos a seguir na documentação do SDK do Microsoft .NET Framework: Para obter mais informações sobre codificação de caracteres, consulte o tópico a seguir na biblioteca do MSDN (Microsoft Developer Network): Para o download XML mais recente e informações, consulte o seguinte site da MSDN: back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 317169 - Última Revisão: 12/07/2015 08:50:00 - Revisão: 4.4

Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft .NET Framework 1.0, Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kbmt kbhowtomaster KB317169 KbMtpt
Comentários