Ваш вывод правильный. Элемент без содержимого должен быть записан как
.
Вы можете принудительно использовать полный тег, вызвав WriteFullEndElement ()
writer.WriteStartElement("Email");
writer.WriteString(inputEmail);
writer.WriteFullEndElement();
, который выведет
, когда inputEmail пуст.
Если вы хотите сделать это более одного раза, вы можете создать метод расширения:
public static void WriteFullElementString(this XmlTextWriter writer,
string localName,
string value)
{
writer.WriteStartElement(localName);
writer.WriteString(value);
writer.WriteFullEndElement();
}
Тогда ваш код будет выглядеть следующим образом:
writer.WriteStartElement("User");
writer.WriteFullElementString("Username", inputUserName);
writer.WriteFullElementString("Email", inputEmail);
writer.WriteEndElement();
Если вам действительно нужно, чтобы это работало вот так, я бы сделал это (чтобы убедиться, что он работает с помощью клавиатуры и мыши)
К сожалению, onclick будет выполняться несколько раз (например, при открытии выбора ... и при выборе / закрытии) и нажатие клавиши может срабатывать, когда ничего не меняется ...