C #: XmlTextWriter.WriteElementString завершается с ошибкой на пустых строках?

В Хаскеле:

let 2 + 2 = 5 in 2 + 2

дает 5.

8
задан Roee Adler 23 July 2009 в 20:18
поделиться

3 ответа

Ваш вывод правильный. Элемент без содержимого должен быть записан как .

Вы можете принудительно использовать полный тег, вызвав WriteFullEndElement ()

writer.WriteStartElement("Email");
writer.WriteString(inputEmail);
writer.WriteFullEndElement();

, который выведет < / Email> , когда 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();
20
ответ дан 3 November 2019 в 14:38
поделиться

Не работает - это просто ярлык для

4
ответ дан 3 November 2019 в 14:38
поделиться

Если вам действительно нужно, чтобы это работало вот так, я бы сделал это (чтобы убедиться, что он работает с помощью клавиатуры и мыши)

  • Добавьте обработчик события onfocus в выберите, чтобы установить «текущее» значение
  • Добавить обработчик события onclick в элемент выбора для обработки изменений мыши
  • Добавить обработчик события onkeypress в элемент выбора для обработки изменений клавиатуры

К сожалению, onclick будет выполняться несколько раз (например, при открытии выбора ... и при выборе / закрытии) и нажатие клавиши может срабатывать, когда ничего не меняется ...

2
ответ дан 3 November 2019 в 14:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: