如何从CDATA中删除href标记

Nov*_*eMe 3 c# xml xmldocument

我在xml文档中有以下CDATA:

<![CDATA[ <p xmlns="">Refer to the below: <br/>
</p>
<table xmlns:abc="http://google.com pic.xsd" cellspacing="1" class="c" type="custom" width="100%">
    <tbody>
        <tr xmlns="">            
            <th style="text-align: left">Basic offers...</th>
        </tr>
        <tr xmlns="">
            <td style="text-align: left">Faster network</td>
            <td style="text-align: left">
            <ul>                
                <li>Session</li>
            </ul>
            </td>
        </tr>
        <tr xmlns="">
            <td style="text-align: left">capabilities</td>
            <td style="text-align: left">
            <ul>                
                <li>Navigation,</li>
                <li>message, and</li>
                <li>contacts</li>
            </ul>
            </td>
        </tr>
        <tr xmlns="">
            <td style="text-align: left">Data</td>
            <td style="text-align: left">
            <p>Here visit google for more info <a href="http://www.google.com" target="_blank"><font color="#0033cc">www.google.com</font></a>.</p>
            <p>Remove this href tag <a href="/abc/def/{T}/t/1" target="_blank">Information</a> remove the tag.</p>
            </td>
        </tr>
    </tbody>
</table>
<p xmlns=""><br/>
</p>
  ]]> 
Run Code Online (Sandbox Code Playgroud)

我想知道如何扫描href ="/ abc/def并删除以abc/def开头的href标签.在上面的示例中,删除href标签并在标签内留下"信息"文本.CDATA可以有多个href用"abc/def ..."标记.我在这个应用程序中使用C#.有人可以帮助我,告诉我如何做到这一点?我应该使用正则表达式还是有办法用xml本身?

这是我正在尝试的正则表达式:

"<a href=\"/abc/def/.*></a>"
Run Code Online (Sandbox Code Playgroud)

我想保留一个href标签的内部文本只是删除标签.但上面的正则表达式不起作用.

L.B*_*L.B 6

使用HtmlAgilityPack

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

var nodes = doc.DocumentNode
    .Descendants("a")
    .Where(n => n.Attributes.Any(a => a.Name == "href" && a.Value.StartsWith("/abc/def")))
    .ToArray();

foreach(var node in nodes)
{
    node.ParentNode.RemoveChild(node,true);
}

var newHtml = doc.DocumentNode.InnerHtml;
Run Code Online (Sandbox Code Playgroud)