通过 System.Xml.XmlWriter 取消转义尖括号
Posted
技术标签:
【中文标题】通过 System.Xml.XmlWriter 取消转义尖括号【英文标题】:Unescaping angle-brackets through System.Xml.XmlWriter 【发布时间】:2010-09-09 03:37:31 【问题描述】:我正在通过 System.Xml.XmlWriter 编写一个包含一些 XML 的字符串。我被困在使用 WriteString() 和文档中:
WriteString 执行以下操作: 字符 &、 分别替换为 &、< 和 >。
我希望停止此操作,但我似乎找不到任何 XmlWriterSettings 属性来控制此行为。有哪些解决方法?谢谢!
大卫
【问题讨论】:
【参考方案1】:尝试在 CDATA 标记之间包装您的真实内容:
这是我的内容 ]]>
【讨论】:
【参考方案2】:WriteString 将你的内容写成文字,&、 在 XML 文本中是非法的,所以它们被转义了。
如果另一端没有逃脱它们,那就是问题所在。
如果您想编写未转义的 XML,请使用 WriteRaw。
【讨论】:
【参考方案3】:我无法使用 WriteString(),
我认为这是您问题的根源。你能解释一下你坚持使用 WriteString 的原因吗?我的直觉是你使用了错误的方法来做你想做的事
【讨论】:
实际上,我正在使用 Argotic 联合框架来生成 Atom Feed,它在内部使用 WriteString() 来写出一些元素。以上是关于通过 System.Xml.XmlWriter 取消转义尖括号的主要内容,如果未能解决你的问题,请参考以下文章