2012-03-08 3 views
1

私は以下のxmlファイルを持っています。xmlファイルの途中にユーザ定義ノードを挿入

<Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> 
    <Object> 
    <DatabaseID>myDB</DatabaseID> 
    </Object> 
    <Type>ProcessFull</Type> 
    <WriteBackTableCreation>UseExisting</WriteBackTableCreation> 
</Process> 

ここで、MyCube兄弟をタグまたはノードに挿入します。 私は

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にLINQを使用しかし、この余分なアウト私は最初のタグにXMLにLINQでそれを削除する方法<?xml version="1.0" encoding="utf-8"?> をしたいといけない入れて

<?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"?> 

あなたは目標を達成するためにXmlWriterを使用することができます。

おかげ

答えて

1

あなたのXML文書内のこの次の行は、のXml宣言と呼ばれています。 ...

var doc = XDocument.Load("file4.xml"); 
XNamespace ns = "http://schemas.microsoft.com/analysisservices/2003/engine"; 

doc.Element(ns + "Process").Element(ns + "Object").Add(new XElement(ns + "CubeID", "MyCube")); 

var settings = new XmlWriterSettings { OmitXmlDeclaration = true }; 
using (var writer = XmlWriter.Create("file5.xml", settings)) 
{ 
    doc.Save(writer); 
} 
+0

@Meysam応答のための感謝を:trueXmlWriterSettingsOmitXmlDeclarationプロパティを設定すると、あなたのxmlファイルに書き込まのXml宣言を必要としないことを示しています。しかし、ファイルを保存している間は、file5.xmlファイルを保存する権限がないという例外があります。それを解決する方法? – Searcher

+0

@YSSSあなたはどこにファイルを書いていますか?アプリケーションが実行されているアカウントに、そのファイルの場所に書き込むために必要なアクセス許可があるとは限りません。これまでと同じようにこのアドレスに書き込めますか? 'C:\\ Users \\ ymihir \\ Documents \\ Visual Studio 2008 \\ Projects \\ ConnectToExtrems \\ ConnectToExtrems \\ cubeProcess.xml' – Meysam

関連する問題