【问题标题】:C# Xelement to string - converts tags to &lt and &gtC# Xelement 到字符串 - 将标签转换为 &lt 和 &gt
【发布时间】:2016-10-16 15:57:02
【问题描述】:

我正在使用 XElement 创建一些 XML,然后我需要将该 XElement 转换为字符串以插入到文件中。

问题在于 XML 元素正在将<example> 转换为&ltexample&gt。这不是一个巨大的惊喜,但我不希望这种情况发生。我需要与圆通中的符号完全相同的字符串。

请问有什么办法可以避免吗?

这是我的元素的创建和随后的字符串转换:

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

【问题讨论】:

  • 为什么你不希望它发生?你实际上只是在谈论属性值吗? (我们不知道 tag 中的内容并没有帮助 - minimal reproducible example 会更容易为您提供帮助。)
  • 我刚刚注意到它删除了我在问题中写的标记......因此它看起来有点模糊。不,这不是属性,它们很好,因为它们显然不包含少于或多于符号。这是元素标签本身。
  • 你为什么不创建一个minimal reproducible example实际上 说明问题?如果您传递的文本实际上已经是 XML,您可能应该首先使用 XElement.Parse 解析它。
  • 如前所述,您需要演示问题。阅读minimal reproducible example 的链接内容。您当前的代码在以 value 的某个值运行时为 here 并且不显示任何尖括号转义。

标签: c# xml


【解决方案1】:

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

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

回答:没有解决办法,因为它会违反 XML 规则 Entity References https://www.w3schools.com/xml/xml_syntax.asp

必须始终将 "" 转换为 "&lt";和“&gt”;分别在“”内。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多