¿Cómo especificar el formato de salida XML al escribir desde una DataTable?

votos
3

En C #, estoy creando un archivo XML desde una DataTable usando dataTable.WriteXml (filePath), y obtengo lo siguiente:

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

¿Cómo puedo escribir el XML en el siguiente formato ?:

<?xml version=1.0 encoding=utf-8 ?>
<ExperienceProfiles>
  <ExperienceProfile Col1=blah
    Col2=blah ></ExperienceProfile>
</ExperienceProfiles>
Publicado el 10/12/2008 a las 00:03
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
5

Lo que quiere es una forma de decirle al DataSet el formato esperado de sus datos. Tienes suerte, el DataSet solo admite esta característica.

Tendrá que crear un esquema XML para sus datos y cargarlo en el DataSet antes de escribir el XML. En el esquema, defina Col1 y Col2 como atributos del elemento ExperienceProfile y el DataSet sabrá formatear el documento de salida para cumplir los requisitos especificados en el esquema.

Si no se siente cómodo con la creación de un esquema, puede crear una muestra del archivo XML de la manera que desea que se formatee, luego eche un vistazo a la clase XmlSchemaInference en el marco. Esta clase se puede usar para generar automáticamente su esquema, puede que necesite modificar un poco la salida, pero puede ser útil si no está familiarizado con XSD.

Respondida el 10/12/2008 a las 00:30
fuente por usuario

votos
4

puede usar la característica de asignación de columna de la columna de tabla de datos. .

column.ColumnMapping = MappingType.Attribute
Respondida el 22/09/2009 a las 09:59
fuente por usuario

votos
0

Respuesta corta: no se puede, usando el método WriteXml de una DataTable.

Respuesta larga (que no es muy larga): solo hazlo tu mismo.

Retracta mi respuesta, como se indica arriba :)

Respondida el 10/12/2008 a las 00:18
fuente por usuario

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