2012-09-15 147 views
0

這是我的兩個xml文檔。如何用c#中的另一個xml元素替換xml元素?

這個xml存儲在paraouterXml字符串中。

<w:tbl> 
<w:tblPr> 
</w:tblPr> 
<w:tblGrid> 
</w:tblGrid> 
</w:tbl> 

此XML存儲在tblMetaInfo字符串中。

<root> 
<w:tblPr> 
    <w:tblStyle w:val="TableGrid" /> 
    <w:tblW w:w="0" w:type="auto" /> 
    <w:tblLook w:val="04A0" /> 
    </w:tblPr> 
<w:tblGrid> 
    <w:gridCol w:w="1947" /> 
    <w:gridCol w:w="1947" /> 
    </w:tblGrid> 
</root> 

所以,在這裏我想更換paraouterXml的<w:tblPr>,<w:tblGrid>與tblMetaInfo的<w:tblPr>,<w:tblGrid>元素。

這是C#代碼...

XmlDocument xDoc = new XmlDocument(); 
xDoc.LoadXml(table.OuterXml); 
XmlNode newNode = xDoc.DocumentElement; 

XmlNodeList tblPrNode = xDoc.GetElementsByTagName("w:tblPr"); 
tblPrNode[0].RemoveAll(); 
XmlNodeList tblGridNode = xDoc.GetElementsByTagName("w:tblGrid"); 
tblGridNode[0].RemoveAll(); 

XmlDocument xDoc1 = new XmlDocument(); 
xDoc1.LoadXml(tblMetaInfo); 
XmlNode newNode1 = xDoc1.DocumentElement; 
XmlNodeList tblPrNode1 = xDoc1.GetElementsByTagName("w:tblPr"); 
XmlNodeList tblGridNode1 = xDoc1.GetElementsByTagName("w:tblGrid"); 

tblPrNode[0].ReplaceChild(tblPrNode1[0], tblPrNode[0]); 
tblGridNode[0].ReplaceChild(tblGridNode1[0], tblGridNode[0]); 

但它拋出一些錯誤...

請指引我走出這個問題...

+1

你得到了什麼確切的錯誤? –

+0

而'一些錯誤'是....? – rene

+0

錯誤消息有些像這樣「newChild是從創建此節點的文檔創建的不同文檔創建的」 – Saravanan

回答