2013-06-14 2 views
1

Когда я пытаюсь добавить значения границ в таблицу в текстовом документе с использованием открытого xml, я получаю эту ошибку.Невозможно вставить OpenXmlElement «newChild», потому что он является частью дерева

(не удается вставить OpenXmlElement "newChild", потому что она является частью дерева.)

Вот мой код:

if (sValue == "") 
{ 
    InsideVerticalBorder insideVBorder = new InsideVerticalBorder(); 
    insideVBorder.Val = new EnumValue<BorderValues>(BorderValues.None); 
    tblBorders.AppendChild(insideVBorder); 
} 

else 
{ 
    InsideVerticalBorder insideVBorder = new InsideVerticalBorder(); 
    insideVBorder.Val = new EnumValue<BorderValues>(BorderValues.Single); 
    tblBorders.AppendChild(insideVBorder); 
} 

ответ

3

Попробуйте использовать CloneNode (правда), как это ,

if (sValue == "") 
{ 
    InsideVerticalBorder insideVBorder = new InsideVerticalBorder(); 
    insideVBorder.Val = BorderValues.None; 
    tblBorders.AppendChild(insideVBorder.CloneNode(true)); 
} 

else 
{ 
    InsideVerticalBorder insideVBorder = new InsideVerticalBorder(); 
    insideVBorder.Val =BorderValues.Single; 
    tblBorders.AppendChild(insideVBorder.CloneNode(true)); 
} 
+0

CloneNode (правда) работал для моей задачи копирования таблицы: БПК Body = doc.MainDocumentPart.Document.Body; Таблица t = bod.Descendants

() .Where (tbl => tbl.InnerText.Contains («Имя таблицы»)). FirstOrDefault(); t.AppendChild (t.CloneNode (true)); – CaMiX

+0

Использование object1.AppendChild (** object2 **) привело к ошибке, указанной для этого сообщения. Изменение ** object2 ** на ** object2.CloneNode (true) ** решил мою проблему! – majestzim

Смежные вопросы