2014-09-16 3 views
-2

Нижеуказанный XElement преобразует специальный символ «&» в «&».Xelement, преобразующий специальные символы в строки

XElement newElement = new XElement("testting", "wow&testvalue"); 

Я хочу, чтобы это было "&" не &.

+1

'' & является особым символом в XML. Вам нужно обернуть текст в блок CDATA, чтобы сохранить его как '&' - ''. – Tim

+0

для '&' преобразования в "amp". аналогично для '<,>' к символам "lt" и "gt" – user2392525

+0

Я согласен с @Tim. '' работает большую часть времени. –

ответ

3

Я хочу, чтобы это было «&», а не &.

Тогда это будет недействительным XML. Почему вы хотите использовать недействительный XML?

LINQ to XML выражает текст, который вы запросили, в действительном XML. Это то, что он должен делать. Если вы попросите текст элемента позже (через этот или любой другой достойный XML API), вы вернетесь wow&testvalue.

Как говорит Тим, вы могли использовать секцию CDATA:

var element = new XElement("testing", new XCData("wow&testvalue")); 

Но вы не можете сказать, LINQ к XML не избежать того, что ему нужно бежать ...

+0

Фактически мы сохраняем «wow & testvalue» в базе данных. Когда я попробовал вышеуказанное выражение, оно сохраняется как «[CDATA [wow & testvalue]]». Я хочу сохранить «wow & testvalue». Как я могу это заменить? – user2392525

+0

@ user2392525: Ну, тогда вы не сохраняете XML - или не должны быть. Похоже, вы должны предоставить * много * больше информации в вопросе; Я дал лучший ответ, который я могу, основываясь на очень ограниченном контексте, который вы предоставили. –