我试图设置xmldoc的innerxml但得到异常:引用未声明的实体
XmlDocument xmldoc = new XmlDocument(); string text = "Hello, I am text α – —" xmldoc.InnerXml = "" + text + "
";
这引发了异常:
引用未声明的实体'alpha'.2号线,2号线..
我该如何解决这个问题?
与HTML不同,XML不定义实体(即对UNICODE字符的命名引用),因此α &MDASH; 等不会转换为相应的字符.您必须使用数值.你只能使用< 和& 在XML中
如果要创建HTML,请改用HtmlDocument.
在.Net中,您可以使用以下System.Xml.XmlConvert
类:
string text = XmlConvert.EncodeName("Hello α");
或者,您可以通过在DOCTYPE声明中将方括号之间的声明放在本地来声明实体.将以下标头添加到xml:
]>
在"html字符实体"上为实体定义做一个google.
尝试替换&Alpha
Α
前面的答案是对的.另一种方法是将您的html文档链接到定义了这些字符实体的DTD,这是标准的XHTML DTD定义.您的xml文件应包含以下声明: