我正在尝试将一个节点(以字符串格式)加载到XElement中。虽然这应该很容易,但我遇到了一些问题:
这里已经填充了所有必要的命名空间。 因此,为了将我的XML字符串嵌入到另一个节点中,我正在执行以下操作:
我需要的结果是:
有没有一种简便的方法来做这件事?提前谢谢。
- 我尝试加载的节点包含某些子节点中的命名空间引用
- 当我尝试使用
XElement.Load()
或Xelement.Parse()
时,我会得到预期的未定义命名空间错误
我知道解决方案是创建一个带有命名空间定义的周围节点,然后加载整个节点,但我想知道是否有更优雅的解决方案,不涉及字符串操作。
以下是我的失败尝试:(
我有一个命名空间属性的集合:
private readonly List<XAttribute> _namespaces;
这里已经填充了所有必要的命名空间。 因此,为了将我的XML字符串嵌入到另一个节点中,我正在执行以下操作:
var temp = new XElement("root", (from ns in _namespaces select ns), MyXMLString);
但是正如我所预料的那样,MyXMLString的内容被转义并成为了文本节点。我得到的结果类似于:
<root xmlns:mynamespace="http://mynamespace.com"><mynamespace:node>node text</node></root>
我需要的结果是:
<root xmlns:mynamespace="http://mynamespace.com">
<mynamespace:node>node text</node>
</root>
有没有一种简便的方法来做这件事?提前谢谢。