使用linq to xml保存xml元素的属性值时,如何使用单引号?

3

我该如何让XDocument对象保存带有单引号的元素属性值?

3个回答

1

我不确定LINQ to XML的任何格式选项是否允许您指定它。为什么你需要呢?一个真正好的XML处理程序是不会关心这个的...


Assert.Equals(@"我期望的xml", xdoc.ToString()) - C#原始字符串不擅长处理引号。如果我们有单引号属性,这将更好。 - Sebastian Redl
@SebastianRedl:嗯...我不认为这是一个更通用的API功能的好理由。虽然我们可以同意不同的看法。 - Jon Skeet
是的,可能不太重要。这只是我发现这个旧问题的原因。 - Sebastian Redl

1
只要您在匹配的对中使用单引号和双引号,并正确嵌套,符合标准的XML处理器就不会关心您使用哪种样式。您的问题表明您打算使用非符合标准(甚至可能不具备XML意识)的工具来处理XML输出。这是一个冒险的建议,尽管我认识到工作环境和客户需求可能并不总是给您提供使用正确工具的选择。我有同事使用sed和grep来筛选和修改XML文件,他们经常可以做到这一点。但如果您有任何选择,我建议您在整个流程中都使用XML感知工具来处理XML文件,直到数据不再以XML标记形式标记为止。否则,与使用XML感知工具进行所有XML处理相比,将导致系统更加脆弱。
如果您无法这样做,那么JacobE的建议可能是您最好的选择。

0

如果绝对必要使用单引号,您可以将XML文档写入字符串,然后使用字符串替换将其从单引号更改为双引号。


2
如果文档中包含其他地方的双引号,那么这将非常棘手... - Jon Skeet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接