当前位置:  开发笔记 > 编程语言 > 正文

XmlWriter只转义一种引用

如何解决《XmlWriter只转义一种引用》经验,为你挑选了1个好方法。

这是一些C#代码:

var sb = new StringBuilder();
var w = XmlWriter.Create(sb);
w.WriteStartElement("hello");
w.WriteAttributeString("target", "world ' \" !");
w.WriteEndElement();
w.Flush();
// then look at sb.ToString()

我得到的字符串看起来像:

  

它只是逃避双引号,而不是单引号.但是XmlWriter.WriteAttributeString(String,String)的文档说:

如果属性值包括双引号或单引号,则将它们替换为" 和 分别.

我需要设置一些标志,以使其按照文档所说的那样做吗?



1> David..:

如果使用.Net Reflector查看代码,您会发现正在调用System.Xml.XmlTextEncoder.Write(string)方法.这是感兴趣的代码:

if (!this.inAttribute || (this.quoteChar != ch))
   this.textWriter.Write('\'');
else
   this.WriteEntityRefImpl("apos");

在编写属性值时,单个引号不会被转义,因为它不需要.只有当写一个文本元素时才会出现"'".用来.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有