&#34; <! - ?“在System.Xml.Linq.XText对象中显示为”<?“

时间:2016-02-16 08:13:38

标签: c# linq-to-xml

在C#中,将"<?"添加到System.Xml.Linq.XText值属性时,XML字符串输出显示为"&lt;?"而不是"<?"

如何将"<?"添加到System.Xml.Linq.XText值属性,使字符串输出为"<?"

2 个答案:

答案 0 :(得分:0)

&lt;<的编码版本。 <不能位于XML标记内,因为它具有特殊含义(新标记的开放)。 所以一切都很好,当你再次阅读XML时会得到正确的读取。

答案 1 :(得分: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);