2016-05-02 6 views
-1

Хотите добавить <tbody> элемент в <table> элементов, если отсутствует на Xdcoument.Добавить tbody XML Элемент в таблицу Элемент в XDcoument

<table class="newtable" id="item_559_Table1" cellpadding="0" cellspacing="0" data-its-style="width:11.4624em; border-spacing:0;"> 
    <colgroup data-its-style="width:11.4624em; " /> 
    <tr> 
     <td data-its-style="padding:0.2292em; vertical-align:top; "> 
      <p data-its-style="">My dad cooks up a pot of chicken soup, and</p> 
     </td> 
    </tr> 
    <tr> 
     <td data-its-style="padding:0.2292em; vertical-align:top; "> 
      <p data-its-style="font-weight:normal; ">This cold means I can’t taste a thing today!</p> 
     </td> 
    </tr> 
</table> 

Вывод должен выглядеть

<table class="newtable" id="item_559_Table1" cellpadding="0" cellspacing="0" data-its-style="width:11.4624em; border-spacing:0;"> 
     <colgroup data-its-style="width:11.4624em; " /> 
<tbody> 
     <tr> 
      <td data-its-style="padding:0.2292em; vertical-align:top; "> 
       <p data-its-style="">My dad cooks up a pot of chicken soup, and</p> 
      </td> 
     </tr> 
     <tr> 
      <td data-its-style="padding:0.2292em; vertical-align:top; "> 
       <p data-its-style="font-weight:normal; ">This cold means I can’t taste a thing today!</p> 
      </td> 
     </tr> 
</tbody> 
    </table> 

** Не смотря на решение XSLT.

ответ

1

Один из способов сделать это - захватить детей <table>, а затем добавить их обратно так, как вы хотите.

var doc = XDocument.Load("file.xml"); 

var colgroup = doc.Root.Elements("colgroup"); 
var tr = doc.Root.Elements("tr"); 

// Add tr to tbody 
var tbody = new XElement("tbody", tr); 

// Replace the children of table with colgroup and tbody 
doc.Root.ReplaceNodes(colgroup, tbody);