C# Xelement转字符串 - 将标签转换为&lt和&gt

3
我正在使用XElement创建一些XML,然后需要将该XElement转换为字符串以插入文件。问题是XML元素被转换为&ltexample&gt,而不是<example>。虽然这并不令人惊讶,但我不希望发生这种情况。我需要原样保留字符串,符号也不能改变。请问有没有避免这种情况的方法?
以下是我的元素创建和字符串转换代码:
XElement markup = new XElement("xref", new XAttribute("xrefid", value), string.Empty);

string xmlMarkUp = markup.ToString(); //converts the XML to &gt and &lt WHICH I DON'T WANT

1
为什么你不希望它发生?你是否只是在谈论属性值?(我们不知道tag里面有什么-提供一个最小完整可复现示例会更容易帮助你。) - Jon Skeet
我刚刚注意到它删除了我在问题中编写的标记...因此它显得有点含糊。不,这不是属性,它们很好,因为它们显然不包含小于或大于符号。它是元素标签本身。 - Can'tCodeWon'tCode
1
为什么不创建一个[mcve]来实际演示问题?如果您传入的文本已经是实际的XML,则应该首先使用XElement.Parse解析它。 - Jon Skeet
3
需要展示问题。阅读[mcve]的链接内容。您当前的代码,在给value赋值后运行,可以在此处查看,没有显示任何尖括号的转义。 - Charles Mager
1
你是否在寻找如何将现有的Xml字符串添加到XElement中的方法?点击此处 - dbc
显示剩余3条评论
1个回答

0

XElement markup = new XElement("xref", new XAttribute("xrefid", value)

我的猜测:OP想让属性标记的value包含另一个元素,例如:123。

答案:没有解决方案,因为它将违反XML规则实体引用 https://www.w3schools.com/xml/xml_syntax.asp

必须始终在""中分别将"<"和">"转换为"&lt;"和"&gt;"。


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