2010-06-03 21 views
0
<?xml version='1.0' encoding='UTF-8'?> 
<StockMarket> 
    <StockDate Day = "02" Month="06" Year="2010"> 
     <Stock>  
      <Symbol>ABC</Symbol>      
      <Amount>110.45</Amount> 
     </Stock> 
     <Stock> 
      <Symbol>XYZ</Symbol>     
      <Amount>366.25</Amount> 
     </Stock> 
    </StockDate> 
    <StockDate Day = "03" Month="06" Year="2010"> 
     <Stock>  
      <Symbol>ABC</Symbol>     
      <Amount>110.35</Amount> 
     </Stock> 
     <Stock> 
      <Symbol>XYZ</Symbol>     
      <Amount>369.70</Amount> 
     </Stock> 
    </StockDate> 
</StockMarket> 

我的做法至今是否有可能創建使用的XDocument以下XML並附加在隨後的去相關protion(C#3.0)

 XDocument doc = 
    new XDocument(
    new XElement("StockMarket", 
     new XElement("StockDate", new XAttribute("Day", "02"),new XAttribute("Month","06"),new XAttribute("Year","2010")), 
     new XElement("Stock", new XElement("Symbol", "ABC"), new XElement("Amount", "110.45")) 
    ) 
    ); 

由於我是新來的LINQ to XML,我目前正在苦苦掙扎,並從此尋求幫助。

我需要的是以編程方式生成上述XML(我的意思是說,某種循環...)值將從文本框傳遞,因此將在運行時填充。

目前我所做的是一種靜態的。這整個東西必須在運行時完成。

我面對的另一個問題是在第二次保存記錄時。

假設我第一次執行代碼並保存它(使用我已完成的程序)。下一次,當我將盡量節省那麼只有

<StockDate Day = "xx" Month="xx" Year="xxxx"> 
      <Stock>  
       <Symbol>ABC</Symbol>      
       <Amount>110.45</Amount> 
      </Stock> 
      <Stock> 
       <Symbol>XYZ</Symbol>     
       <Amount>366.25</Amount> 
      </Stock> 
     </StockDate> 

應該得到保存(或更好的附加),而不是<StockMarket> .... </StockMarket>..因爲那樣只會在當XML將產生或創建的第一次創建。

我希望我能夠正確傳達我的問題。如果你的人在理解我的情況方面有困難,請讓我知道。

使用C#3.0。

感謝

回答

1

您可以添加的元素,一旦文件被創建很容易的屬性:

XDocument doc = /* what you had already */ 

// get the "<StockMarket>" element 
var stockMarketElem = doc.Element("StockMarket"); 

// add a new StockDate to it in a loop 
for(var dt = new DateTime(2010, 1, 1); dt <= new DateTime(2010, 6, 1); dt = dt.AddDays(1)) 
{ 
    stockMarketElem.Add(
     new XElement("StockDate", 
     new XAttribute("Day", dt.Day), new XAttribute("Month", dt.Month), ... 
    ); 
} 

此外,添加新元素你保存文件後,你可以載入它XDocument.Load然後使用與上述相同的方式在保存之前添加新股票。

如果你期望文件變得相當大,那麼XML可能不是最好的選擇,但如果你不期望太多的數據,那麼它可能是好的。

相關問題