A有一个包含链接列表的HTML文档:
<div class="toc">
<ul class="content_list">
<li><a href="...">Chapter 1</a></li>
<li><a href="...">Chapter 2</a></li>
<li><a href="...">Chapter 3</a></li>
是否有办法(使用CsQuery)删除锚标记或用不同的元素(例如<span>
)替换它们,同时保留文本?
结果应该是这样的:
<div class="toc">
<ul class="content_list">
<li>Chapter 1</li>
或者像这样:
<div class="toc">
<ul class="content_list">
<li><span>Chapter 1</span></li>
答案 0 :(得分:4)
var cq = new CsQuery.CQ(@"<div class=""toc""><ul class=""content_list"">
<li><a href=""..."">Chapter 1</a></li>
<li><a href=""..."">Chapter 2</a></li>
<li><a href=""..."">Chapter 3</a></li>
</ul></div>");
cq[".toc > .content_list > li > a"]
.Select(x => x.Cq())
.ToList().ForEach(x => x.ReplaceWith(x.Text()));
//or with a span wrapper
//.ToList().ForEach(x => x.ReplaceWith(new CsQuery.CQ("<span/>").Text(x.Text())));
cq.Html().Dump();
这产生:
<ul class="content_list">
<li>Chapter 1</li>
<li>Chapter 2</li>
<li>Chapter 3</li>
</ul>