XML 特殊字符转义无效

XML special character escape not working

我正在尝试使用“!”我的 C# class 中的特殊字符,但我的 xml 不会导致此“!MovieName”,而是导致“_x0021_MovieName” 我试过 ! ;并且还使用 CDATA 但它们不起作用。它们为每个特殊字符变成了更多 x0021(示例)类型的字符串。

public class Movie
{
  [XmlElement("!MovieName")]
  public string Title
  { get; set; }

  [XmlElement("MovieRating")]
  public float Rating
  { get; set; }

  [XmlElement("MovieReleaseDate")]
  public DateTime ReleaseDate
  { get; set; }
}

在 XML 中将 ! 作为标签的开始字符是非法的。您只需要使用不同的命名策略即可。

XML 元素名称不能以 ! 开头,这就是它被替换的原因。

您应该可以开始:

  1. 任意字母
  2. 下划线_
  3. 冒号:

参见XML Spec for more information, or more specifically the section on NameStartChar