2016-02-16 4 views
0

В C# при добавлении "<?" в свойство значения System.Xml.Linq.XText вывод строки XML отображается как "&lt;?", а не "<?"."<?" отображается как «<?» в объекте System.Xml.Linq.XText

Как добавить "<?" в свойство значения System.Xml.Linq.XText так, что вывод строки равен "<?"?

+0

Я не думаю, что Linq-ToXml позволяет генерировать недопустимый XML ... Зачем вам это/чего вы на самом деле хотите достичь? –

ответ

0

&lt; - это закодированная версия <. < не может быть внутри XML-тега, поскольку он имеет особое значение (openig нового тега). Итак, все хорошо, и вы получите правильное чтение, когда вы снова прочитаете в XML.

+0

Правильно ли это не поможет OP, который, вероятно, попытается создать инструкцию по обработке (или что-то подобное). –

0

Это звучит как XY Problem.

Если вы действительно хотите добавить <? к XText, то <необходимо быть экранированы от &lt; лица; в противном случае вы бы сделали xml поврежденным.

Однако, если вы на самом деле хотите добавить команду процесса в XML, такие как <?xml-stylesheet type="text/xsl" href="mystyles.xsl"?>, то сделать это следующим образом:

var myXml = new XDocument(); 
var proc = new XProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"mystyles.xsl\""); 
myXml.Add(proc); 
Смежные вопросы