我有以下xml文件。
<Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>myDB</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
现在我想将MyCube兄弟插入标签或节点。 我使用linq到xml如下
var mydoc = XDocument.Load("cubeProcess.xml");
XNamespace xmns2 = XNamespace.Get("http://schemas.microsoft.com/analysisservices/2003/engine");
mydoc
.Element(xmns2 + "Process")
.Element(xmns2 + "Object")
.Add(new XElement(xmns2 + "CubeID"));
mydoc.Save("C:\\Users\\ymihir\\Documents\\Visual Studio 2008\\Projects\\ConnectToExtrems\\ConnectToExtrems\\cubeProcess.xml");
但输出正在改变如下
<?xml version="1.0" encoding="utf-8"?>
<Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>myDB</DatabaseID>
<CubeID>myCube</CubeID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
在这个额外的输出中我不想要第一个标签<?xml version="1.0" encoding="utf-8"?>
如何使用linq将其删除到xml并保存文件。我动态地这样做。
请帮帮我。
由于
答案 0 :(得分:1)
XML文档中的以下行称为 Xml声明:
<?xml version="1.0" encoding="utf-8"?>
您可以使用XmlWriter
来实现目标。将OmitXmlDeclaration
的{{1}}属性设置为XmlWriterSettings
表示您不需要将 Xml声明写入您的xml文件:
true