我使用(.NET 3.5 SP1)System.Xml.Linq命名空间用数据的div标签填充html模板文档(然后将其保存到磁盘)。有时div标签是空的,这在HTML方面似乎是一个问题。根据我的研究,DIV标签不是自动关闭的。因此,至少在Firefox下,<div />
被视为开头div标签,没有匹配的结束标记。
所以,当我通过声明:
创建新的div元素时XElement divTag = new XElement("div");
如何强制生成的XML为<div></div>
而不是<div />
?
答案 0 :(得分:5)
我不确定为什么你最终会得到一个空的DIV(看起来有点无意义!)但是:
divTag.SetValue(string.Empty);
应该这样做。
答案 1 :(得分:2)
使用 XElement divTag = new XElement(“div”,String.Empty); 你得到明确的结束标记
答案 2 :(得分:1)
我不知道使用LINQ的问题的答案。但是在codeplex上有一个名为HTML Agility Pack的项目,它允许您创建和操作HTML文档,这与我们使用System.Xml命名空间类操作XML文档的方式非常类似。
答案 3 :(得分:0)
我这样做了。按预期工作。
myXml = new XElement("script", new XAttribute("src", "value"));
myXml .Value = "";
以下是结果。
<script src = "value"></script>