2009-01-20 58 views
6

我正在使用(.NET 3.5 SP1)System.Xml.Linq命名空間來填充具有div標記數據的html模板文檔(然後將其保存到磁盤)。有時候div標籤是空的,這對於HTML來說似乎是個問題。根據我的研究,DIV標籤不是自動關閉的。因此,至少在Firefox下,<div />被認爲是沒有匹配結束標籤的開啓div標籤。使用System.Xml.Linq命名空間顯式元素關閉標記

所以,當我創建通過聲明新的div元素:

XElement divTag = new XElement("div"); 

我如何可以強制生成的XML是<div></div>而不是<div />

回答

5

我不知道爲什麼你會落得一個空的DIV(似乎有點毫無意義的!)但是:

divTag.SetValue(string.Empty); 

應該這樣做。

+0

嗯,我有點沒意義。我只是懶惰,不想寫一堆if-checks來確定是否應該寫這些標籤,或不寫入底層文檔。 – 2009-01-20 19:51:50

1

我不知道你使用LINQ的問題的答案。但在codeplex上有一個名爲HTML Agility Pack的項目,它允許您創建和操作HTML文檔,這與我們使用System.Xml命名空間類操作XML文檔的方式非常相似。

2

With XElement divTag = new XElement(「div」,String.Empty); 你得到明確的結束標記

0

我做到了。按預期工作。

myXml = new XElement("script", new XAttribute("src", "value")); 
myXml .Value = ""; 

下面給出了結果。

<script src = "value"></script>