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标签的内部文本只是删除标签.但上面的正则表达式不起作用.
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)