1

リンクのリストを含む 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>

<span>アンカータグを削除したり、テキストを保持したまま別の要素 (a など) に置き換える方法 (CsQuery を使用) はありますか?

結果は次のようになります。

  <div class="toc">
     <ul class="content_list">
        <li>Chapter 1</li>

またはこのように:

  <div class="toc">
     <ul class="content_list">
        <li><span>Chapter 1</span></li>
4

1 に答える 1

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>
于 2015-01-13T19:25:51.677 に答える