首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >&in XElement

&in XElement
EN

Stack Overflow用户
提问于 2018-02-28 17:51:25
回答 2查看 659关注 0票数 0

我想使用<element>&amp;</element>生成System.Xml.Linq.XElement

我试过这样做:new XElement("element", "&amp;"),但是它脱离了符号,它生成:<element>&amp;amp;</element>

我能想到的唯一解决办法是创建一个自定义类,该类继承自XText,重写WriteTo方法,并使用XmlWriter => WriteEntityRef方法。在我看来这有点过头了。还有别的办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-01 10:32:44

正如注释和答案中所建议的那样,new XElement("element", "&")实际上将利用框架来正确地避开符号。

这方面的部分问题是,最初我试图将&nbsp;放入我的xml元素,但没有取得多大的成功。我不知道,除非我的XML有一个定义&nbsp;的DTD,否则我不能使用&nbsp;

从那时起,我更新了我的问题,改为使用&amp;,这反过来又改变了XElement的行为,因为与空格不同,&需要在XML中转义,LINQ自动做到这一点(正如预期的那样)。

票数 0
EN

Stack Overflow用户

发布于 2018-03-01 09:03:28

您已经在评论中找到了解决方案,只是一些背景:

您必须理解内容原样(__ must ,XML)与其在( XML )中的表示之间的区别。在XML之外,您可以看到普通的内容,当它被写入XML时,它会自动转义,在读取时会再次转义。

我试过这样做:new XElement("element", "&amp;"),但是它脱离了符号,它生成:<element>&amp;amp;</element>

这清楚地表明了到底发生了什么。通过传入&amp;,您可以得到&amp;amp;。引擎将看到&并将其替换为实体。

只需使用new XElement("element", "&"),就可以得到所需的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49035704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档