0

簡単に言えば、次のような HTML があります。

<ul>
  <li>Unorderd Item 1</li>
  <li>Unordered Item 2</li>
  <li>Unordered Item 3
    <ol>
       <li>Ordered Item 1</li>
       <li>Ordered Item 2</li>
    </ol>
  </li>
  <li>Unordered Item 4</li>
</ul>

<li>親リスト要素が何であるかに応じて、タグを何かに置き換える正規表現またはその性質のロジックを探しています。

まっすぐに RegEx を使用することも、.Net System.Text.RegularExpressions クラスを使用することもできます (ここではおそらく私のルートです)。

Regex.Replace

Regex.Matches

<-- HTML パーサーを使用できる/使用する必要があることはわかっていますが、これは XSLT 構成ドキュメントと組み合わせて使用​​されています。したがって、正規表現を使用するのが最善の方法のようです。-->

望ましい出力:

<ul>
   <Unordered>Unordered Item 1</Unordered>
   <Unordered>....</Unordered>
     <ol>
        <Ordered>......</Ordered>
        <Ordered>......</Ordered>
     </ol>
   <Unordered>.....</Unordered>
 </ul>  
4

1 に答える 1

0

これにはHtmlAgilityPackを使用します

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlString);

foreach (var li in doc.DocumentNode.Descendants("li"))
{
    if (li.ParentNode.Name == "ul") li.Name = "Unordered";
    if (li.ParentNode.Name == "ol") li.Name = "Ordered";
}

var newHtml = doc.DocumentNode.OuterHtml;

出力:

<ul>
  <unordered>Unorderd Item 1</unordered>
  <unordered>Unordered Item 2</unordered>
  <unordered>Unordered Item 3
    <ol>
       <ordered>Ordered Item 1</ordered>
       <ordered>Ordered Item 2</ordered>
    </ol>
  </unordered>
  <unordered>Unordered Item 4</unordered>
</ul> 
于 2013-07-11T19:44:51.303 に答える