【发布时间】:2016-01-20 10:03:47
【问题描述】:
我的方法接收一个 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 作为值?输入字符串可能非常大,所以我想避免解析它。
【问题讨论】:
-
为什么需要禁用转义这个值?如果它包含
</envelope>子字符串,那么潜在的情况呢?如果不转义,它将破坏您的 xml。 -
@AndyKorneyev 你是对的,这将是一个问题。但是,我检查输入字符串是否遵循可能的 XSD 模式之一,因此不存在
</envelope>子字符串的风险。 -
@AndyKorneyev 不幸的是,这个检查是由系统的不同模块完成的,所以我的方法没有接收到解析的 XML,只是一个纯字符串。
-
@AndyKorneyev 谢谢,我错过了!这个问题中的
XRaw可能就是我要找的!
标签: c# .net xml linq-to-xml xelement