Работа с XmlTextWriter и нулевым узлом

У меня есть код, который создает xml-файл на лету. Иногда узел имеет значение, а иногда нет. Мне нужно получить открывающие и закрывающие теги <hour>12:00</hour> или <hour></hour>, даже если нет значения, но я не могу найти решение. где значение пусто, я получаю <hour />

XmlTextWriter writer = new XmlTextWriter(path + "/" + CustomerId + "/Data/" + CustomerId + ".xml", System.Text.Encoding.UTF8);
writer.WriteStartDocument(true);
writer.Formatting = Formatting.Indented;
writer.Indentation = 2;
writer.WriteStartElement("data");

if (paravalue == null || paravalue == "")
{
    writer.WriteStartElement(para);
    writer.WriteString("");
    writer.WriteEndElement();
}
else
{
    writer.WriteStartElement(para);
    writer.WriteString(paravalue);
    writer.WriteEndElement();
}

person Elidotnet    schedule 24.01.2016    source источник
comment
Всегда нужны теги типа: ‹час›12:00‹/час›, а не ‹час/›   -  person Elidotnet    schedule 24.01.2016
comment
Я не уверен, зачем вам это нужно. <hour></hour> и <hour/> эквивалентны и полностью взаимозаменяемы!   -  person Mr Lister    schedule 31.01.2016


Ответы (1)


Используйте WriteFullEndElement. вместо WriteEndElement.

person Szabolcs Dézsi    schedule 24.01.2016
comment
есть ли способ избежать разрыва строки? - person Elidotnet; 24.01.2016
comment
Попробуйте вызвать writer.WriteWhitespace(""); вместо writer.WriteString(""); в первой ветке. - person Szabolcs Dézsi; 24.01.2016
comment
получить некоторую ошибку: следует использовать только пробельные символы - person Elidotnet; 24.01.2016
comment
мммм, теперь все в порядке, я забыл про пробел между - person Elidotnet; 24.01.2016