2017-05-13 18 views
2

我通過API調用生成了一個XML文件,然後我嘗試使用ssis中的XML源組件讀取文件,但它是隻讀數據集,除了文件中包含的所有數據。使用c#在現有的xml文件的開始和結尾添加節點使用c#

這裏我的文件

<?XML version 1.0 > 
<ABC> 
     <a>info<a/> 
<ABC/> 

但我想文件中像下面則只有我能使用分量 我們可以手動操作文件的單個文件,但不是萬個文件

<?XML Version 1.0> 
<X> 
    <ABC> 
     <a>info <a/> 
    <ABC/> 
</X> 
輕鬆讀取文件

如何將'X'節點添加到現有文件。

我在.Net技術上沒有太多的曝光。

請儘早幫助我。

謝謝 KiranKumar

回答

1

使用XML LINQ

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string xml = 
       "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + 
        "<ABC>" + 
         "<a>info</a>" + 
        "</ABC>"; 
      XDocument doc = XDocument.Parse(xml); 

      XElement root = doc.Root; 
      root.ReplaceWith(new XElement("X", root)); 
     } 
    } 
} 
0

嘗試流API。

using (var reader = XmlReader.Create("test.xml")) 
using (var writer = XmlWriter.Create("test2.xml")) 
{ 
    writer.WriteStartElement("X"); 
    reader.MoveToContent(); 
    writer.WriteNode(reader.ReadSubtree(), true); 
    writer.WriteEndElement(); 
} 

這種方法可以處理xml而不會消耗過多的內存。

此外,此方法允許即時修改xml,從輸入API流中獲取它並寫入輸出流。

using (var reader = XmlReader.Create(inputStream)) 
using (var writer = XmlWriter.Create(outputStream)) 
相關問題