2011-03-14 34 views
1

我想修改現有的XML文件。 我用一個DataSet來加載帶有ReadXml方法的XML文件。修改帶有數據集和子關係的xml文件

然後我通過GetChildRows方法顯示相關條目。

我想改變/添加/刪除那些ChildRows:

我怎樣才能做到這一點?

下面是編輯

<einginedesign> 
    <object om_id="111" objname="DelivaryInfo"> 
     <objprop prop_id="1"> 
      <prop_name>OrderRef</prop_name> 
      <prop_desc>Order Reference</prop_desc> 
      <prop_dtype>varchar</prop_dtype> 
     </objprop> 
    </object> 
</einginedesign> 

我在數據集中編輯和寫XML文件後之前的XML。 新增(子行)超出對象。

<einginedesign> 
    <object om_id="111" objname="DelivaryInfo"> 
     <objprop prop_id="1"> 
      <prop_name>OrderRef</prop_name> 
      <prop_desc>Order Reference</prop_desc> 
      <prop_dtype>varchar</prop_dtype> 
     </objprop> 
    </object> 
    <objprop prop_id="2"> 
     <prop_name>TransNo</prop_name> 
     <prop_desc>Transaction number</prop_desc> 
     <prop_dtype>Numeric</prop_dtype> 
    </objprop> 
</einginedesign> 
+0

我懷疑這東西從閱讀的時候它做與數據關係xml架構。看看下面的鏈接:http://msdn.microsoft.com/en-us/library/7sfkwf9s(v=VS.100).aspx,也嘗試使用DataSet.ReadXml(dsName,XmlReadMode.InferSchema); – 2011-03-14 13:08:48

回答

0

如果你看看下面的例子,爲了它是你將需要設置父行子,下面的代碼,XML將得到所需要的輸出:

DataSet ds = new DataSet(); 
ds.ReadXml("XMLFile1.xml", XmlReadMode.InferSchema); 
ds.Tables[1].Rows.Add(new string[] {"0","0","0","0"}); 
ds.Tables[1].Rows[1].SetParentRow(ds.Tables[0].Rows[0]); 
ds.Tables[1].Rows[0]["prop_id"] = 1; 
ds.WriteXml("xmlfile2.xml", XmlWriteMode.IgnoreSchema); 


<einginedesign> 
<object om_id="111" objname="DelivaryInfo"> 
<objprop prop_id="1"> 
    <prop_name>OrderRef</prop_name> 
    <prop_desc>Order Reference</prop_desc> 
    <prop_dtype>varchar</prop_dtype> 
</objprop> 
<objprop prop_id="0"> 
    <prop_name>0</prop_name> 
    <prop_desc>0</prop_desc> 
    <prop_dtype>0</prop_dtype> 
</objprop> 

這是很基本的,你顯然必須尋找正確的父行等

+0

非常感謝。它的工作如我所料。 – suu 2011-03-14 15:43:30