Добавление пробелов в XML-документ

1

Я пытаюсь создать html-документ с классами.NET XMLDocument в рабочем приложении Winforms.

На данный момент я не могу добавить в текстовое содержимое пробелы.
Вот критический мир кода:

For Each item As DataGridViewCell In row.Cells
Dim content As String = CStr(item.Value)
Dim xmlCell As XmlElement = xmlDoc.CreateElement("td")
xmlCell.AppendChild(xmlDoc.CreateTextNode(" " + content + " "))

Я также пробую вот так:

xmlCell.AppendChild(xmlDoc.CreateTextNode("     " + content + "     "))

... но эти пробелы просто игнорируются при показе html-документа с браузером.

Как видно, я должен добавить некоторые пробелы до и после "содержимого", "" + контента + ".
Но это не работает должным образом, поэтому у меня есть точный текст (как написано литературно), а не пробелы в документе.

Как получить пробелы до и после "содержимого" в таком виде программирования?

EDIT: На самом деле, неразрывное пространство должно быть в порядке, но что случилось? Whern пишет через CreateTextNode...

  becomes:  

Как этого избежать?

  • 1
    Попробуйте: xmlDoc.preserveWhiteSpace = true; , Обнаружил, что здесь: msdn.microsoft.com/en-us/library/ms256097%28v=vs.110%29.aspx «По умолчанию Microsoft XML Core Services (MSXML) не учитывает атрибут xml: space.»
  • 0
    Avantol, к сожалению, это не работает. Вероятно, xml и html отличаются в этом аспекте.
Показать ещё 5 комментариев
Теги:

2 ответа

1
Лучший ответ

На ваш отредактированный вопрос, по-видимому, достаточно хорошо сказано здесь: вставьте литерал символа NBSP в строку, и XmlDocument должен позаботиться о том, чтобы соответствующим образом выполнить его.

  • 0
    Привет, Натан, я пытаюсь это сделать: Dim nbsp As XmlText = xmlDoc.CreateTextNode ("\ u00A0"): xmlCell.AppendChild (nbsp) объявление получает этот текст (\ u00A0) перед моим контентом :)
  • 1
    @ user973238: Для этого вы используете VB, а не C #, поэтому синтаксис \ u не сработает *. Попробуйте xmlDoc.CreateTextNode(ChrW(&H00A0)) . * Никакой базовый производный, о котором я знаю, не имеет какого-либо характера экранирования.
Показать ещё 2 комментария
1

Я вижу, вы пытаетесь добавить неразрывное пространство.

Это необходимо?

Почему бы вам не попробовать добавить простое пространство до и после?

Пример:

" " + content + " "

Также обратите внимание, что многие XML-фреймворки поддерживают свойство для сохранения пробелов при чтении данных XML.

Вот это свойство: PreserveWhiteSpace

Проверьте эту статью: http://msdn.microsoft.com/en-us/library/bb387014%28v=vs.110%29.aspx

  • 0
    Я пытаюсь создать HTML-документ с классами XML, как описано здесь: cdmckay.org/blog/2009/02/01/creating-an-html-document-with-net . Все предложенное просто не работает в моем случае, когда я вижу созданный документ через браузер. Но пробелы добавляются, если я смотрю этот HTML-код через текстовый редактор.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню