2012-09-15 140 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

回答