VB.NET

2016-10-16 5 views
0
に複数のテーブルを持つXMLのインポート

だから私は、次の.XMLファイルを持っている...私はVB.NETにインポートしたい VB.NET

<?xml version="1.0" encoding="UTF-8"?> 
<PPG> 
<Header> 
    <Protocol> 
    <Message>MixDataInterface</Message> 
    <Name>PPG</Name> 
    <Version>1.3.0</Version> 
    </Protocol> 
    <Transaction> 
    <TransactionID>2577f125-663d-4351-909c-02fab90f21fd</TransactionID> 
    <TransactionDate>2016-10-13T22:48:09</TransactionDate> 
    </Transaction> 
    <ShopInfo> 
    <PPGShopID /> 
    <ShopID>DB</ShopID> 
    <ShopName>TRAXX</ShopName> 
    </ShopInfo> 
</Header> 
<MixDataInterface> 
    <ROData> 
    <ROCount>5</ROCount> 
    <RepairOrders> 
     <RO> 
      <ROCounter>1</ROCounter> 
      <RONumber>UNASSIGNED</RONumber> 
      <Notes /> 
      <Undercoat>False</Undercoat> 
      <Clearcoat>False</Clearcoat> 
      <Basecoat>True</Basecoat> 
      <TotalLiquidCost>0.00</TotalLiquidCost> 
      <TotalSundryCost>0.00</TotalSundryCost> 
      <MixCount>1</MixCount> 
      <Mixes> 
       <Mix> 
       <MixCounter>1</MixCounter> 
       <MixRONumber>UNASSIGNED</MixRONumber> 
       <MixedDate>2016-10-05T00:00:00</MixedDate> 
       <MixedBy /> 
       <MixedByEmployeeID /> 
       <MixCost>0.00</MixCost> 
       <PPGBrandCode>7EFBB</PPGBrandCode> 
       <ColorMixDescription>AQUABASE PLUS (AQU+ BC Solid) 7EFBB Prime (BIANCO BIANCO , BIANCO NEVE)</ColorMixDescription> 
       <FormulaType>Standard</FormulaType> 
       <ComponentCount>4</ComponentCount> 
       <Components> 
        <Component> 
         <ComponentCounter>1</ComponentCounter> 
         <ComponentRONumber>UNASSIGNED</ComponentRONumber> 
         <ComponentCode>P990-8900</ComponentCode> 
         <ComponentDescription>BRILLIANT WHITE</ComponentDescription> 
         <ComponentCost>0.00</ComponentCost> 
         <ComponentWeightApplied>0.00000</ComponentWeightApplied> 
         <ComponentWeightTarget>179.30470</ComponentWeightTarget> 
         <ComponentDensity>1.21300</ComponentDensity> 
        </Component> 
       </Components> 
       </Mix> 
      </Mixes> 
      <SundryCount>0</SundryCount> 
     </RO> 
     </RepairOrders> 
    </ROData> 
</MixDataInterface> 
</PPG> 

。次のMSDN記事 https://msdn.microsoft.com/en-us/library/ekw4dh3f.aspxが見つかりましたが、例の.XMLファイルには1つのテーブルしかないので、ファイルに適用するとエラーが発生します。

このファイルをデータセットにインポートする方法を教えてもらえますか?

後で、.XMLが更新されたときにデータセットを更新する方法を検討する必要があります(これには選択肢はありません。この唯一のデータソースはこの.XMLとして提供されますが)ファイルをインポートできることに満足しています。

+0

xmlファイルのインポートは機能しません。 xmlには、適切なデータセットを生成するにはタグのレベルが多すぎます。データセットには、あまり使用できない多くのテーブルが含まれてしまいます。必要なデータセット/データセットを定義できますか?私はたくさんの方法でファイルを解析することができますが、実際に何が必要なのかは不明です。 – jdweng

+0

XPathを調べる – rheitzman

答えて

0

@jdwengは、ここでは、正しいことをあなたがインポートされたものを探るのに役立ついくつかのコードです:

Dim ds As New DataSet 
    Dim sr As New StringReader(sPostXMLData) 
    ds.ReadXml(sr) 
    For Each t As DataTable In ds.Tables 
     Debug.Print(t.TableName) 
    Next 

テーブル: ヘッダー プロトコル トランザクション ShopInfo MixDataInterface ROData RepairOrders RO ミックス ミックス 構成要素 構成要素

有用ではありません。データを解析するためのXML固有のツールをもっと探してみてください。