我的方法接收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作为值?输入字符串可能非常大,所以我想避免解析它。
答案 0 :(得分:3)
正如评论中所提到的,这不可能直接完成,因为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>