【发布时间】:2012-07-30 18:40:38
【问题描述】:
我有两个 XML 文档。 我的目标是用第二个 Xml 文档的全部内容替换第一个文档中的一个节点。 所以第一个文档 - Parent 看起来像这样:
<Root>
<AgencyName = "Some Agency"/>
<Originator = "Some other Agency"/>
<Type = "AnonymousType"/>
<Details/>
</Root>
第二个文档 - children 如下所示:
<Root>
<Details>
<Detail1>
...
</Detail1>
<Detail2>
...
</Detail2>
<Detail3>
...
</Detail3>
</Details>
</Root>
节点<Details/> 必须替换为第二个文档的内容。
我正在尝试使用 Linq to XML 来执行此操作。第一个文档在 XDocument 类中表示,第二个文档在 XElement 类中表示。 <Detail/> 有几个子属性,我没有在这里列出。
我试图用这个 XElement 类替换第一个文档中的元素。 如果我尝试这样的事情,
ParentDoc.Element("Details").ReplaceAll(children);
这不太可能奏效。 我应该如何更换?
【问题讨论】:
-
忽略您的父 XML 无效的事实:
parentDoc.Root.Element("Details").ReplaceAll(childDoc.Root.Element("Details").Elements())为什么这“不太可能工作?” -
对 XML 感到抱歉。我输入它并没有意识到我必须关闭标签。 @Raphaël Althaus 具有正确的 XML。
-
@ColeCampbell 我的代码和你的代码都出现 NullReferenceException。
标签: c# linq linq-to-xml