Вы можете использовать синтаксический анализатор XML или методы манипулирования DOM:
// Using DOM manipulation methods
var myEl = document.createElement("tr");
myEl.innerHTML = "<td>\n"+
" <table>\n" +
" <tr>\n" +
" <td>\n" +
" some_html_code\n" +
" </td>\n" +
" <td>\n" +
" another_html\n" +
" </td>\n" +
" </tr>\n" +
" </table>\n" +
"</td>";
var out = myEl.childNodes[0].innerHTML;
console.log(out);
Одно из преимуществ использования методов DOM, приведенных выше, заключается в том, что они могут быть более щадящими для ошибок валидации / корректности.... но в результате они могут добавить элемент <tbody>
к разметке.
В качестве альтернативы, вы также можете использовать менее прощающий DOMParser
:
// using the DOMParser to parse XML
var content = "<td>\n"+
" <table>\n" +
" <tr>\n" +
" <td>\n" +
" some_html_code\n" +
" </td>\n" +
" <td>\n" +
" another_html\n" +
" </td>\n" +
" </tr>\n" +
" </table>\n" +
"</td>";
var parser=new DOMParser();
var serializer = new XMLSerializer();
xmlDoc=parser.parseFromString(content,"text/xml");
var out = '';
var tdEl = xmlDoc.childNodes[0];
var count = tdEl.childNodes.length;
alert(count);
for(var i=0; i<count; i++) {
out += serializer.serializeToString(tdEl.childNodes[i]);
}
console.log(out);