Явные теги закрытия элемента с пространством имен System.Xml.Linq - PullRequest
6 голосов
/ 20 января 2009

Я использую (.NET 3.5 SP1) пространство имен System.Xml.Linq, чтобы заполнить HTML-шаблон документа тегами div с данными (а затем сохранить его на диск). Иногда теги div пусты, и это кажется проблемой, когда дело доходит до HTML. Согласно моим исследованиям, тег DIV не является самозакрывающимся. Поэтому, по крайней мере, в Firefox <div /> считается открывающим тегом div без соответствующего закрывающего тега.

Итак, когда я создаю новые элементы div, объявив:

XElement divTag = new XElement("div"); 

Как можно заставить сгенерированный XML быть <div></div> вместо <div />?

Ответы [ 4 ]

5 голосов
/ 20 января 2009

Я не уверен, почему вы получили пустой DIV (кажется, немного бессмысленно!) Но:

divTag.SetValue(string.Empty);

Должен это сделать.

2 голосов
/ 10 декабря 2009

С XElement divTag = new XElement ("div", String.Empty); вы получаете явный закрывающий тег

1 голос
/ 20 января 2009

Я не знаю ответа на ваш вопрос с помощью LINQ. Но есть проект под названием HTML Agility Pack для codeplex, который позволяет создавать и манипулировать HTML-документами, очень похожими на то, как мы можем манипулировать XML-документом с использованием классов пространства имен System.Xml.

0 голосов
/ 23 марта 2017

Я сделал это. Работает как положено.

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

Что дает ниже как результат.

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