代码之家  ›  专栏  ›  技术社区  ›  Matthew Ruston

带系统的显式元素闭合标记。Xml。Linq命名空间

  •  6
  • Matthew Ruston  · 技术社区  · 16 年前

    我使用的是(.NET 3.5 SP1)系统。Xml。Linq命名空间,用于用数据的div标签填充html模板文档(然后将其保存到磁盘)。有时div标签是空的,这在HTML中似乎是一个问题。根据我的研究,DIV标签不是自动关闭的。因此,至少在Firefox下 <div /> 被认为是一个没有匹配结束标签的开始div标签。

    因此,当我通过声明创建新的div元素时:

    XElement divTag = new XElement("div"); 
    

    如何强制生成的XML <div></div> 而不是 <div/> ?

    4 回复  |  直到 16 年前
        1
  •  6
  •   Steven Robbins    16 年前

    我不知道为什么你最终会得到一个空的DIV(似乎有点毫无意义!)但是:

    divTag.SetValue(string.Empty);
    

    应该这么做。

        2
  •  2
  •   Daniele Armanasco    16 年前

    具有 XElement divTag=新的XElement(“div”,String.Empty); 你会得到明确的结束标签

        3
  •  1
  •   red.clover    16 年前

    我不知道你使用LINQ的问题的答案。但有一个项目叫做 HTML Agility Pack codeplex允许您创建和操作HTML文档,与我们使用System操作XML文档的方式非常相似。Xml命名空间类。

        4
  •  0
  •   Mathivanan KP    8 年前

    是我干的。按预期工作。

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

    结果如下。

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