Como especificar o formato de saída XML ao escrever a partir de um DataTable?

votos
3

Em C #, eu estou criando um arquivo XML a partir de um DataTable usando dataTable.WriteXml (filePath), e obter o seguinte:

<?xml version=1.0 encoding=utf-8 ?>
<ExperienceProfiles>
  <ExperienceProfile>
    <Col1>blah</Col1>
    <Col2>4ed397bf-a4d5-4ace-9d44-8c1a5cdb0f34</Col2>
  </ExperienceProfile>
</ExperienceProfiles>

Como posso obtê-lo para escrever o XML no seguinte formato ?:

<?xml version=1.0 encoding=utf-8 ?>
<ExperienceProfiles>
  <ExperienceProfile Col1=blah
    Col2=blah ></ExperienceProfile>
</ExperienceProfiles>
Publicado 10/12/2008 em 00:03
fonte usuário
Em outras línguas...                            


3 respostas

votos
5

O que você quer é alguma maneira de dizer o DataSet no formato esperado de seus dados. Você está com sorte, o DataSet suporta apenas esse recurso.

Você vai precisar para criar um esquema XML para os seus dados e carregá-lo no DataSet antes de escrever o XML. No esquema definir Col1 e col2 como atributos do elemento ExperienceProfile eo DataSet saberá para formatar o documento de saída para atender os requisitos especificados no esquema.

Se você não está confortável com a criação de um esquema que você pode criar uma amostra do ficheiro XML, a maneira que você quer que ele seja formatado, então dê uma olhada na classe XmlSchemaInference no quadro. Esta classe pode ser usada para gerar automaticamente o esquema, você pode precisar de ajustar a saída um pouco, mas ele pode ajudar se você não estiver familiarizado com XSD.

Respondeu 10/12/2008 em 00:30
fonte usuário

votos
4

você pode usar o recurso ColumnMapping da coluna tabela de dados. .

column.ColumnMapping = MappingType.Attribute
Respondeu 22/09/2009 em 09:59
fonte usuário

votos
0

Resposta curta: você não pode, usando o método WriteXml de um DataTable.

Resposta longa (que não é muito longo): Apenas rolar o seu próprio.

Retrair a minha resposta, conforme acima :)

Respondeu 10/12/2008 em 00:18
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more