Comment faire pour afficher la Table de données XML à partir d'WriteXml dans un bien lisible format?

J'ai quelques tables de données que je veux exporter vers un fichier et de le regarder. Je peux utiliser DataTable.WriteXml() pour afficher le contenu des tables de données au format XML, mais ce est un moyen simple pour afficher ces données sous forme de tableau?

Une manière suggérée est de transformer le XML en utilisant XSLT ou semblable en quelque chose de lisible. Je n'ai aucune idée si c'est facile ou pas, mais que serais une solution si il est facile à utiliser.

Un exemple de XML-je obtenir de WriteXml() pour un seul DataTable est ci-dessous. C'est pour une table nommée 'RecentMatter' avec 10 colonnes et 3 lignes de données. J'aimerais qu'il s'affiche comme un tableau de données. Je suis moins préoccupé par la mise en forme de valeurs de données, par exemple la conversion de valeurs de type DateTime pour des valeurs plus lisibles. J'ai utilisé le XmlWriteMode.WriteSchema paramètre lors de la création de cette. Si vous supprimez qu'alors, toutes les informations de schéma (avant la première balise) est supprimée.

Différentes tables, évidemment, ont un nombre différent de colonnes, de sorte que toute solution aurait besoin pour faire face à cela, idéalement sans avoir à modifier la solution pour les tables avec des colonnes différentes.

<NewDataSet>
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="RecentMatter" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="RecentMatter">
<xs:complexType>
<xs:sequence>
<xs:element name="UserLogin">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MatterNumber">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ClientName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MatterName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ClientCode" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="OfficeCode" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="OfficeName" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Billable" type="xs:boolean"/>
<xs:element name="ReferenceId" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LastUsed" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//RecentMatter"/>
<xs:field xpath="UserLogin"/>
<xs:field xpath="MatterNumber"/>
</xs:unique>
</xs:element>
</xs:schema>
<RecentMatter>
<UserLogin>PSLTP6\RJK</UserLogin>
<MatterNumber>99999-2302</MatterNumber>
<ClientName>Test Matters</ClientName>
<MatterName>DP Test Matter</MatterName>
<ClientCode>99999</ClientCode>
<OfficeCode/>
<OfficeName/>
<Billable>true</Billable>
<ReferenceId/>
<LastUsed>2011-08-23T23:40:24.13+01:00</LastUsed>
</RecentMatter>
<RecentMatter>
<UserLogin>PSLTP6\RJK</UserLogin>
<MatterNumber>999991.0002</MatterNumber>
<ClientName>Lathe 1</ClientName>
<MatterName>LW Test 2</MatterName>
<ClientCode/>
<OfficeCode/>
<OfficeName/>
<Billable>true</Billable>
<ReferenceId/>
<LastUsed>2011-07-12T16:57:27.173+01:00</LastUsed>
</RecentMatter>
<RecentMatter>
<UserLogin>PSLTP6\RJK</UserLogin>
<MatterNumber>999991-0001</MatterNumber>
<ClientName>Lathe 1</ClientName>
<MatterName>LW Test 1</MatterName>
<ClientCode/>
<OfficeCode/>
<OfficeName/>
<Billable>false</Billable>
<ReferenceId/>
<LastUsed>2011-07-12T01:59:06.887+01:00</LastUsed>
</RecentMatter>
</NewDataSet>
  • avez-vous essayez d'ouvrir ceux générés XML avec excel? Je pense que vous devriez le voir comme un tableau, avec les dernières versions d'Excel.
  • peut-être que vous devriez faire XMLWriter.Mise En Forme = Mise En Forme.En retrait; je ne sais pas si vous pouvez Stocker des DataTable à XmlWriter ,si oui que cela devrait construire vous êtes xml.
  • Ouverture dans Excel ne fonctionne pas très bien: si vous n'incluez pas de Schéma Xml de l'info dans le fichier XML, puis il affiche un tableau mais sans en-têtes de colonne. Y compris xml schéma fait passer complètement de travers. Il a également capote avec de grandes valeurs et de ne pas traiter avec des ensembles de données correctement, de les mettre à côté de l'autre sur une grande feuille.
InformationsquelleAutor Rory | 2011-09-02