鑑於以下XDocument
,初始化爲變量xDoc
:合併的XElement到的XDocument和解決命名空間
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">
<ReportSection>
<Width />
<Page>
</ReportSections>
</Report>
我有嵌入在一個XML文件的模板(我們稱之爲body.xml
):
<Body xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">
<ReportItems />
<Height />
<Style />
</Body>
我想作爲<ReportSection>
的孩子。問題是,如果通過XElement.Parse(body.xml)
添加它,它會保留命名空間,即使我認爲命名空間應該被刪除(沒有重複自己的點 - 已經在父級上聲明)。如果我沒有指定名稱空間,它會放置一個空的名稱空間,因此它將變爲<Body xmlns="">
。
有沒有辦法將XElement
合併爲XDocument
?我想xDoc.Root.Element("ReportSection").AddFirst(XElement)
後得到以下的輸出:
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">
<ReportSection>
<Body>
<ReportItems />
<Height />
<Style />
</Body>
<Width />
<Page>
</ReportSections>
</Report>
檢查了這一點:http://stackoverflow.com/questions/4985974/xelement-namespaces-how-to – Codeman
@ Pheonixblade9:不幸的是,在我的情況下,XML不是由代碼創建的,因爲它是在StackOverflow的幾十個例子中完成的,包括一個你提到。從頭開始創建XElement並將其合併到XDocument中不是問題。這是關於XElement.Parse返回一個節點樹。 – Neolisk