2011-11-07 45 views
3

我正在創建一個新的XML文檔,其中有一些標籤沒有無文字。用空字符串寫入XMLDocument元素innertext添加回車換行

如果我填充的innerText一些數據,那麼它需要在這種情況下,即你獲得打開標籤的innerText和結束標記都在同一行的工作:

<testtag>somevalue</testtag>

的問題標籤出現沒有價值。這些都需要如上顯示在相同的方式:

<testtag></testtag>

但是,如果我填充的innerText用一個空字符串,加上一個回車&換行符這不是什麼進口軟件的需求。

<testtag>

</testtag>

如果我離開的innerText空然後我得到一個自我結束標記。這又不是要求。

我試過從其他帖子中提出的刪除/ n和/ r,但一旦保存文檔就會發生同樣的問題。

+0

我有一個類似的問題,這似乎來自XMLDocument.Save()方法。在保存之前,屬性是空的,因爲它應該沒有任何CR/LF。 – codea

回答

2

以下代碼不會遇到您描述的問題。如果此代碼示例不能讓您走上正確的軌道,請使用您正在使用的代碼更新您的問題,以便我們可以更好地進行診斷。

class Program 
{ 
    static void Main(string[] args) 
    { 
     XmlWriterSettings settings = new XmlWriterSettings {Indent = true}; 
     XmlWriter writer = XmlWriter.Create("C:\\Users\\elaforc\\temp.xml", settings); 

     XmlDocument xmlDocument = new XmlDocument(); 
     XmlElement parentElement = xmlDocument.CreateElement("Parent"); 
     XmlElement childElement = xmlDocument.CreateElement("Child"); 
     childElement.InnerText = ""; 
     parentElement.AppendChild(childElement); 
     xmlDocument.AppendChild(parentElement); 
     xmlDocument.Save(writer); 
    } 
} 

生成

<?xml version="1.0" encoding="utf-8"?> 
<Parent> 
    <Child></Child> 
</Parent> 
+0

我希望這對我有效,因爲它似乎是一個非常有效的答案!我不知道爲什麼這個線程死了,這從來沒有被接受爲答案!我有一個類似的問題在這裏http://stackoverflow.com/questions/19258810但我的LOADING XML文件不只是創建一個新的。 –

+0

關鍵點是以下行:XmlWriterSettings settings = new XmlWriterSettings {Indent = true}; – codea