Sto cercando di rimuovere tutti i tag di commento HTML dal mio htmlNode, Di seguito è riportato il codice di selezione HtmlNode dal mio c #
HtmlNode table = doc5.DocumentNode.SelectSingleNode("//div[@id='div12']");
riportato di seguito il codice di pseudo markup HtmlNode
<table>
<tr>
<td>test</td>
<td>
<!-- <a href='url removed' >Test link Test 2 Comment </a> -->
</td>
</tr>
</table>​
Sono riuscito a configurare l'espressione regolare per risolvere il mio problema, il codice c # è il seguente. Ma, solo nel mio test, è riuscito a funzionare correttamente e con il tipo di input come stringa. Vedi il codice c # qui sotto.
string rkr;
rkr = "<!-- <a href='url removed' >Test link Test 2 Comment </a> -->";
rkr = Regex.Replace(rkr, @"(\<!--\s*.*?((--\>)|$))",String.Empty);
Risultato = "". che è quello che voglio in diretta per tutti i tag.
Ho visto molti esempi di codice sui forum e sul forum StackOverflow. ma nulla è vicino a ciò che voglio. un post è stato davvero utile ma era per php, quindi di nuovo inutile.
Ora, se nella funzione Regex.Replace sopra inserisco
rkr = Regex.Replace(table, @"(\<!--\s*.*?((--\>)|$))",String.Empty);
Ottengo l'errore seguente
La migliore corrispondenza del metodo sovraccarico per "System.Text.RegularExpressions.Regex.Replace (string, System.Text.RegularExpressions.MatchEvaluator, int)" presenta alcuni argomenti non validi
Ho anche provato a convertire
rkr = Regex.Replace(table.ToString(), @"(\<!--\s*.*?((--\>)|$))",String.Empty);
Ma poi ottengo il valore di ritorno rkr = "HtmlAgilityPack.HtmlNode".
Qualsiasi aiuto sarebbe di grande aiuto.
Grazie a tutti per il vostro aiuto. Ho trovato la soluzione nella seguente funzione.
Ho appena chiamato la funzione dopo aver popolato il doc5 come segue
HtmlNode table = doc5.DocumentNode.SelectSingleNode("//div[@id='div12']");
RemoveComments(table);
public static void RemoveComments(HtmlNode node)
{
foreach (var n in node.ChildNodes.ToArray())
RemoveComments(n);
if (node.NodeType == HtmlNodeType.Comment)
node.Remove();
}
Per riferimento: ho trovato la risposta nel seguente post. Come selezionare i tipi di nodo che sono HtmlNodeType Comment utilizzando HTMLAgilityPack
molto preciso e con molti tipi di esempi diversi, esattamente quello che cercavo.