我正在尝试将节点(以字符串格式)加载到 XElement 中。虽然这应该很容易,但我发现了一些问题:
- 我尝试加载的节点在某些子节点中包含命名空间引用
- 当我尝试使用
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>
有没有一种巧妙的方法来做到这一点?
提前致谢