2016-06-01 18 views
0

XML文書からdataTableを自動的に生成する可能性はありますか?XMLから自動的にDataTableを生成

自動的には、行/列を自動的に生成します。

例使用するXML:

<?xml version="1.0" encoding="UTF-8"?> 
<tns:factures xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://XXX" xsi:schemaLocation="xxxxx.xsd"> 
<facture num="F0000047672" numArchivage="000" dateCompostage="2016-04-14" numCompostage="20160414000333" numTVAIntracom="FR09429449457" nomFournisseur="TT" numCommande="09457519" societeFacturee="005" typeFacture="FAC" montantHT="3817.920" montantTTC="4027.910" montantTVA="209.990" devise="EUR" dateFacture="2016-04-04" dateEcheance="2016-05-31" CodeSiteLivraison="630N" factureDetaillee="false" nomFichier="KKK_005_20160414_000333.pdf"> 
    <ligneTVA tauxTVA="5.500" montantHT="3817.920" montantTVA="209.990" montantTTC="4027.910" /> 
</facture> 
<facture num="970928" numArchivage="000" dateCompostage="2016-04-14" numCompostage="20160414000365" numTVAIntracom="FR64482283694" nomFournisseur="jfjfjfj" numCommande="02090828" societeFacturee="005" typeFacture="FAC" montantHT="28623.980" montantTTC="34348.780" montantTVA="5724.800" devise="EUR" dateFacture="2016-04-11" dateEcheance="2016-06-10" CodeSiteLivraison="02K" factureDetaillee="false" nomFichier="KKK_005_20160414_000365.pdf"> 
    <ligneTVA tauxTVA="20.000" montantHT="28623.980" montantTVA="5724.800" montantTTC="34348.780" /> 
</facture> 
</tns:factures> 

を見てわかるように、「骨折」ノードと「LigneTVA」ノードがあります。

各列を指定せずに、これらの2つのノードを自動的にdataTableに追加したいとします。

これは可能ですか?

Linq-to-SQLを使用していますか?または、他の何か?

どうもありがとう:)

答えて

0

この

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication22 
{ 
    public partial class Form1 : Form 
    { 
     const string FILENAME = @"c:\temp\test.xml"; 
     public Form1() 
     { 
      InitializeComponent(); 

      DataSet ds = new DataSet(); 
      ds.ReadXml(FILENAME); 
      dataGridView1.DataSource = ds.Tables[0]; 
     } 
    } 
} 
+0

感謝を試してみてください、私はそうトリックは代わりのDataTableをデータセットを使用することですできるだけ早く:)しようとしますか? –

+0

DataSetまたはDataTableを使用するかどうかは、タグのレイヤ数によって異なります。 DataSetでは、最初のレイヤタグはDataSet名です。 2番目のレイヤタグはDataTable名です。第3層は列の名前です。第4層は、第3層タグに関連する値である。データセット名を失うDataTableソリューション。また、DataTableに名前がない限り、DataTableはXMLの書き込みに失敗します。 DataSetに名前がない場合でも、DataSetはxmlを書き込みます。 – jdweng

+0

私はあなたのコードを試しました、それは大丈夫です!非常に素晴らしい !みんなありがとう :) –

関連する問題