将 XML 设置为 XElement 的值
本文关键字:XElement 的值 设置 XML | 更新日期: 2023-09-27 18:31:11
我的方法接收一个XML字符串作为输入,我需要使用XElement
将这个XML字符串放入XML信封中:
input: <hello>Hello!</hello>
expected result: <envelope><hello>Hello!</hello></envelope>
问题是这段代码:
string xmlHello = "<hello>Hello!</hello>";
XElement xelem = new XElement("envelope", xmlHello);
转义所有<>
,因此结果为:
<envelope><hello>Hello!</hello></envelope>
有没有办法禁用XElement
构造函数的这种行为,以便能够接受XML作为值?输入字符串可能非常大,所以我想避免解析它。
正如注释中提到的,这不能直接完成,因为 API 无法知道您的文本实际上是格式良好的 XML,除非您向它传递它知道是 XML 元素的东西。
因此,您需要做的是首先解析您的 XML:
string xmlHello = "<hello>Hello!</hello>";
var hello = XElement.Parse(xmlHello);
var envelope = new XElement("envelope", hello);
结果是:
<envelope>
<hello>Hello!</hello>
</envelope>