5

文本中的“&”在使用 XmlTextWriter 创建 xml 文件时被转义并转换为&,但我不希望发生转换如何防止它发生?

除了使用 xmltextwriter 的 WriteRaw 函数还有其他方法吗?

4

3 回答 3

9

如果您在 XML 中放置未转义的 & 符号,则它不再是有效的 XML。

您的两个选择是逃避它(您的图书馆正在这样做):

<tag>One &amp; another</tag>

或者将其包装在 CDATA 中:

<tag><![CDATA[One & another]]></tag>

这可以通过以下方式完成:

xmlWriter.WriteCData("One & another");
于 2010-02-01T13:19:38.800 回答
0

你为什么不希望这种情况发生?在我看来,该库正在按照 XML 的要求强制执行正确的字符转义。

于 2010-02-01T13:16:17.223 回答
0

我不确定它是否会起作用,但您可能想要检查通过 xmltextwriter.Settings 可用的 XmlWriterSettings 属性,尤其是 CheckCharacters 属性。

另一方面,正如 Brian Agnew 所提到的,不将 & 编码为 & 可能是错误的方法,因为它会使您的 XML 无效(除非您已经将其编码为 & 在这种情况下,您可能只想在给出它之前对其进行解码到 xmltextwriter 类。

于 2010-02-01T13:23:39.703 回答