2014-09-22 53 views
0

我一直在尝试从外部源读取xml文件以将其导入数据集。我采用了架构并通过xsd编译我的类,并将其加载到解决方案中。将XML输出到数据集

我的xml:

<?xml version="1.0" encoding="UTF-8" standalone="true"?> 
<CAMDealerManifest AssetURL="http://www.the placewherethefilelives.com/CAMPublic/d98c8185/" DealerCode="41065" DealerGuid="bc0d0bc8-b37b-11e3-a345-ac162dbc18f8" DealerName="Ron Hibbard Toyota" ManifestId="13" ManifestURL="http://www.toyota.com/CAMPublic/d/41065-bc0d0bc8.xml" Path="41065-bc0d0bc8" ProviderId="1011" WebsiteVendorName="WorldDealer"> 
    <CAMCampaigns count="15" dateTime="2014-09-16T17:18:40.877-07:00"> 
    <CAMCampaign ManifestId="13" endDate="2014-12-31T11:59:59-08:00" flightDates="08/01/14 - 12/31/14" geography="National" groupName="National" id="68" name="National - Corolla Style Elevated" priority="0" required="false" startDate="2014-08-01T12:00:00-07:00"> 
     <CAMCreative SubGroup="Corolla Style Elevated" Id="49" Name="National - Corolla Style Elevated" ImageAltText="Toyota's national banner for the stylish 2014 Corolla" ImageSearchTerms="Toyota, 2014 Corolla, Style Elevated, New Heights" Link="New Inventory" Model="Corolla" MonthYear="08-2014" Priority="3" Required="false"> 
     <CAMCreativeSource CAMAssetCount="1" Height="409" Width="990" MediaBinAssetId="0E1C886A-C5CE-4409-AD36-7070D614A7A6" MediaBinFileName="03-14_01_2014_nat-style-elevated_990x409_0000000460_corolla_o_xta.jpg"> 
      <CAMAsset Path="National/Corolla-Style-Elevated/National---Corolla-Style-Elevated/990/409/" Id="1273" Name="08-14_01_National-Corolla-Style-Elevated_990x409_431_Corolla_O_xta.jpg" Height="409" Width="990" assetType="JPG" Guid="b9f4d3cd-fefd-4ff3-b209-338f409e551c" Md5Hex="3e328dc32a2db9fc1f3d6a2167d3e5d2"> 
      <CAMTracking> 
       <SiteCatalyst version="1.0"> 
       <Click tmsomni.events="event28" tmsomni.products=";08-14_01_National-Corolla-Style-Elevated_990x409_431_Corolla_O_xta;;;event28=1"/> 
       <Impression tmsomni.events="event29" tmsomni.products=";08-14_01_National-Corolla-Style-Elevated_990x409_431_Corolla_O_xta;;event29=1;evar43=img|evar61=corolla|evar54=o|evar49={$CAM_PAGE_POSITION}"/> 
       </SiteCatalyst> 
      </CAMTracking> 
      </CAMAsset> 
     </CAMCreativeSource> 
     </CAMCreative> 
    </CAMCampaign> 
</CAMCampaigns> 
<CAMExpiredCampaigns count="0" dateTime="2014-09-16T17:18:40.873-07:00"/> 
</CAMDealerManifest> 

我似乎无法得到这个XML列出或放入数据集。我是新的反序列化XML,可以使用一些帮助。

+0

使用[反序列化](http://msdn.microsoft.com/en-us/library/tz8csy73.asp x)“XmlSerializer”的方法。 – Ghukas 2014-09-22 16:14:02

回答

0

要获取的ReadXml与文件路径:

var dataSet = new DataSet(); 
dataSet.ReadXml(string PathToFile); 

工作得很好;甚至会创建所有关系(请注意屏幕截图中的CAMDealerManifestId)。

Tables created from DataSet.ReadXml

您的文件中去,只有一个修改XML声明 - 不得不从truestandalone值更改为yes

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 

如果你作为一个字符串阅读本,你可以这样做:

var xmlString = HoweverYouGetTheString().Split(new string[] { "\r\n" }, StringSplitOptions.None); 
xmlString[0] = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"; 

using (var reader = new System.IO.StringReader(String.Join("\r\n", xmlString))) 
{ 
    dataSet.ReadXml(reader); 
} 
+0

该文件将坐在远程我将被拉下。我用xml按原样运行'DataSet.ReadXml(string fileName)'。它错了。我错过了什么? – 2014-09-22 19:20:51

+0

我有一个XML声明(答案的底部)的问题 - 是这个问题?否则,什么是例外? – bdimag 2014-09-22 20:57:50

+0

我一直没有得到一个数据集显示。我从外部来源拉这个。你是如何得到XML显示? – 2014-09-23 16:52:51