Linq to XML, C # и закодированные символы в XML - PullRequest
0 голосов
/ 25 марта 2011

У меня есть строка в XML, которая выглядит следующим образом:

I am a sample string & I have an ampersand.

Когда я показываю это для использования, это выглядит так:

I am a sample string & I have an ampersand.

Пользователь может взаимодействовать с этой строкой, и после этого его изменения сохраняются в базе данных, только индексы отключены, поскольку строка, с которой он взаимодействовал, короче, чем строка в XML.

Например: если пользователь ставит разрыв строки в конце строки, например:

I am a sample string & I have an
ampersand

База данных будет хранить ее, и новый созданный из нее XML будет выглядеть следующим образом (отключено на 4):

I am a sample string & I have
an ampersand

Лучше всего просто обработать это в коде и выполнить настройку перед тем, как поместить его в базу данных? Похоже, это было бы менее желательно, потому что мне пришлось бы обрабатывать это для всех закодированных символов, и кто знает, сколько их, и я должен был бы сделать это для всех языков.

Есть ли что-то в Linq to XML, которое обрабатывает эту ситуацию?

Совет

Спасибо,

Aaron

Ответы [ 2 ]

2 голосов
/ 25 марта 2011

Вам не нужно обращаться с этим - LINQ to XML позаботится о формировании правильного XML в этом случае:

XElement ele = new XElement("foo");
ele.Value = "I am a sample string & I have an ampersand.";
string text = ele.ToString();//<foo>I am a sample string &amp; I have an ampersand.</foo>
string value = ele.Value; //I am a sample string & I have an ampersand.

ele.Value = "I am a sample string &amp; I have an ampersand.";
string text = ele.ToString();//<foo>I am a sample string &amp;amp; I have an ampersand.</foo>
string value = ele.Value; //I am a sample string &amp; I have an ampersand.

Вам следует беспокоиться о сохранении действительных значений в вашей базе данных, а не о представлении этих значений (будь то XML или другое).

0 голосов
/ 25 марта 2011

Ваш индекс для второй строки отключен на четыре, вероятно, потому что вы не учитываете удаление 4 символов "amp;"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...