XmlWriterSettings.NewLineHandling 属性

定义

获取或设置一个值,该值指示是否将输出中的换行符规范化。

public:
 property System::Xml::NewLineHandling NewLineHandling { System::Xml::NewLineHandling get(); void set(System::Xml::NewLineHandling value); };
public System.Xml.NewLineHandling NewLineHandling { get; set; }
member this.NewLineHandling : System.Xml.NewLineHandling with get, set
Public Property NewLineHandling As NewLineHandling

属性值

NewLineHandling 值之一。 默认值为 Replace

注解

在写入文本内容或属性值时,此设置适用。 NewLineHandling下面描述了每个值:

  • 设置 Entitize 指示 XmlWriter 替换使用字符实体进行规范化 XmlReader 时不会保留的新行字符。 这在通过规范化 XmlReader读取输出的往返方案中非常有用。 在 中规范化时,其他规范化规则适用于往返的属性值,\n\t在 中规范化时, 和 \r 将被替换为属性值中的XmlReader空格。

  • 设置 Replace 告知 XmlWriter 将新行字符替换为 属性中 NewLineChars 特定的字符 () 。 此设置还会将属性中的新行替换为字符实体以保留字符。 它也是默认值。

  • 设置 None 告知 XmlWriter 保持输入不变。 如果不需要任何新行处理,则使用此设置。 当输出由 XmlReader 不执行任何规范化 ((例如 XmlTextReader ,具有默认设置的 )读取时,这非常有用。)

下表显示了 方法的 WriteString 输出,当根据属性设置提供输入值 NewLineHandling 时。 这些表在写入文本内容和写入属性值时显示输出。

Text Node Value:

\r\n \n \r \t
Entitize &#D;\n \n &#D; \t
Replace \r\n \r\n \r\n \t
\r\n \n \r \t

Attribute Value:

\r\n \n \r \t
Entitize &#D;&#A; &#A; &#D;
Replace &#D;&#A; &#A; &#D;
\r\n \n \r \t

注意

XmlWriter在 CDATA 节、注释或处理指令中写入内容时,具有以下行为。 新行永远不会替换为其字符实体,即使 NewLineHandling 属性设置为 Entitize也是如此。 这是因为在 CDATA 节、注释或处理指令中无法识别字符实体。 如果 属性 NewLineHandling 设置为 NoneReplace,则行为与写入文本节点值时的行为相同。

下表描述了每个空白输入的规范化 XmlReader 返回结果。 有关详细信息,请参阅 W3C XML 1.0 建议的第 2.11 节和第 3.3.3 节

注意

规范化读取器是由 方法创建XmlReader.Create的任何XmlReader对象。 这些对象始终执行属性的换行规范化和完全规范化。 XmlTextReader如果 对象的 属性设置为 true,则对象Normalization也可以是规范化读取器。

\r\n \n \r \t
文本节点值 \n \n \n \t
特性值 单一空间 单一空间 单一空间 单一空间

适用于