VB.NET

2016-10-16 2 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 파일에는 하나의 테이블 만 있으므로 내 파일에 적용 할 때 오류가 발생합니다.

누군가이 파일을 데이터 세트로 가져 오는 방법을 알려줍니다.

나중에 .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 관련 도구를 살펴보십시오.