2016-05-02 6 views
-1

Möchten Sie <tbody> Element in <table> Elemente hinzufügen, wenn auf Xdcoument fehlt.Hinzufügen tbody XML-Element zu Tabelle Element in 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> 

Ausgabe sollte wie

aussehen
<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> 

** Nicht für XSLT-Lösung suchen.

Antwort

1

Ein Weg, es zu tun wäre, die Kinder von <table> zu ergreifen, dann fügen Sie sie zurück, wie Sie sie wollen.

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);