Сохраните пробелы в строке с помощью XmlTextWriter.WriteString
-
03-07-2019 - |
Вопрос
Я пишу XML-документ на C #.
У меня есть что-то вроде этого...
string output = "REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _";
и я делаю это...
objXmlTextWriter.WriteStartElement("Case");
objXmlTextWriter.WriteString(record);
objXmlTextWriter.WriteEndElement();
и xml-элемент получается вот таким...
<Case>REAPP DUE NO OF REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _ </Case>
Он в основном преобразовал пробелы длиной, превышающей 1, в 1 символ пробела.
Как мне предотвратить это?
Решение
Извините, запутался раньше (удалил неправильный ответ).Но я не могу воспроизвести то, что вы, кажется, видите.Проверьте эту программу...это действительно сохраняет пробелы.
class Program
{
static void Main(string[] args)
{
XmlWriter w = XmlTextWriter.Create("./foo.xml");
w.WriteStartElement("foo");
w.WriteString(" THIS HAS VARYING SPACeS ");
w.WriteEndElement();
w.Close();
StreamReader sr = new StreamReader("./foo.xml");
Console.WriteLine(sr.ReadToEnd());
Console.ReadKey();
}
}
Другие советы
ОК...
Это всего лишь проблема с отображением IE.Наверное, это как-то связано со шрифтом.
Когда я открываю XML в notepad ++, я вижу, что пробел действительно сохранен должным образом.
Вместо WriteString() вы могли бы использовать WriteCData(), чтобы заключить текст в блок CDATA, если важно отображение в IE.
Не связан с StackOverflow