如何使用HTMLAgilityPack单独删除html标签,但不能删除内部html或儿童标签? [英] How to delete a html tag alone but not inner html or children tag using HTMLAgilityPack?
本文介绍了如何使用HTMLAgilityPack单独删除html标签,但不能删除内部html或儿童标签?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在下面的代码中删除一个html标签< tbody>
,
<表>
< 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)。
}
但删除整个 单身:(
欣赏你的帮助和时间:)
解决方案
var tbody = document.DocumentNode.SelectSingleNode(// tbody);
tbody.ParentNode.RemoveChild(tbody,keepGrandChildren:true);
输出:
<表>
< tr>
< td valign =bottom>< / td>
< td valign =bottom>< / td>
< td valign =bottom>< / td>< / tr>
< tr>
< td>< / td>
< td>< / td>
< td>< / td>< / tr>
< / table>
I need to delete an html tag say <tbody>
in the following code,
<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>
I'm using,
var document = new HtmlDocument();
document.LoadHtml(<URL>);
if (document.DocumentNode.SelectSingleNode("//tbody") != null)
{
document.DocumentNode.SelectSingleNode("//tbody").Remove();
}
But its deleting the entire block instead of just alone :(
Appreciate your help & time :)
解决方案
var tbody = document.DocumentNode.SelectSingleNode("//tbody");
tbody.ParentNode.RemoveChild(tbody, keepGrandChildren: true);
OUTPUT:
<table>
<tr>
<td valign="bottom"></td>
<td valign="bottom"></td>
<td valign="bottom"></td></tr>
<tr>
<td></td>
<td></td>
<td></td></tr>
</table>
这篇关于如何使用HTMLAgilityPack单独删除html标签,但不能删除内部html或儿童标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文