我需要在以下代码中删除一个html标记<tbody>
,
<TABLE>
<TBODY>
<TR>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD valign="bottom"></TD>
<TD valign="bottom"></TD>
<TD valign="bottom"></TD></TR>
</TBODY>
</TABLE>
我正在使用,
var document = new HtmlDocument();
document.LoadHtml(<URL>);
if (document.DocumentNode.SelectSingleNode("//tbody") != null)
{
document.DocumentNode.SelectSingleNode("//tbody").Remove();
}
但是它会删除整个 块,而不仅仅是:
感谢您的帮助&amp;时间:)
答案 0 :(得分:4)
var tbody = document.DocumentNode.SelectSingleNode("//tbody");
tbody.ParentNode.RemoveChild(tbody, keepGrandChildren: true);
<强>输出:强>
<table>
<tr>
<td valign="bottom"></td>
<td valign="bottom"></td>
<td valign="bottom"></td></tr>
<tr>
<td></td>
<td></td>
<td></td></tr>
</table>
答案 1 :(得分:1)
内部html是标记的组成部分,这就是为什么内部html也会被删除。
您需要做的是将<tbody>
标记替换为<tbody>
的内部html,在您的情况下,这样的内容(我没有检查此代码是否有效,但您明白了):
document.DocumentNode.SelectSingleNode("//table").innerHTML = document.DocumentNode.SelectSingleNode("//tbody").innerHTML;
答案 2 :(得分:0)
如果您为标记指定了ID,则应该能够通过id访问该元素。这将使删除变得非常容易。