猿问

从 Xml 克隆一个节点并在没有 Xml NS 验证的情况下在其他地方使用它

我正在尝试从 Xml 文件加载结构,以便我可以在其他地方重建它。大多数部分已经被解析并加载到对象中。但是有些部分没用,不会改变,所以我决定把这些节点放在他们的层次结构中,把节点和它的后代保留为字符串。


稍后我应该能够从该字符串制作 XmlElement 或 XmlFragment 并将其重新附加到我正在制作的 xml 文件中。


到目前为止,加载部分很好。我可以复制选定的部分并将其作为 XmlNode 保存。但是要重新附加它,我必须将它转换为 xmlElement,这就是 CustomXmlNamespaces 破坏一切的地方。命名空间加载在完整的 xml 文档中,但是当我获取文件片段时,它显然不包含命名空间。


当我想加载片段字符串时,它会提示我


System.Xml.XmlException: ''mxswa' 是一个未声明的前缀。第 1 行,位置 2。


所以 xml 字符串是这样的:


<mxswa:Workflow.Variables>

  <Variable x:TypeArguments="scg:Dictionary(x:String, mcw:InteractionActivityResult)" Default="[New Dictionary(Of System.String, Microsoft.Crm.Workflow.InteractionActivityResult)]" Name="InteractionResponses" />

  <Variable x:TypeArguments="scg:Dictionary(x:String, mxs:EntityCollection)" Default="[New Dictionary(Of System.String, Microsoft.Xrm.Sdk.EntityCollection)]" Name="QueryResults" />

</mxswa:Workflow.Variables>

加载代码是这样的:


XmlDocumentFragment fragment = doc.CreateDocumentFragment();

fragment.InnerXml = xmlString;

arguments.AppendChild(fragment);


MYYA
浏览 154回答 1
1回答
随时随地看视频慕课网APP
我要回答