我通过API调用生成了一个XML文件,然后我尝试使用ssis中的XML源组件读取该文件,但它是只读数据集,除了文件中包含的所有数据。
这是我的档案
<?XML version 1.0 >
<ABC>
<a>info<a/>
<ABC/>
但我想要下面的文件只有我可以使用组件轻松读取文件 我们可以手动操作单个文件的文件,但不能操作千个文件
<?XML Version 1.0>
<X>
<ABC>
<a>info <a/>
<ABC/>
</X>
如何将“X”节点添加到现有文件中。
我对.Net技术的曝光度不高。
请在最早的时候帮助我。
谢谢 KiranKumar
答案 0 :(得分: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));
}
}
}
答案 1 :(得分: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))