1

私はこのような文字列を持っています

<tr><td>14.54.49</td><td>SKUTTELG</td><td>001772377777</td><td>テスト </td><td>SKUTTELG - mottatt. Vilt: Okse 2,5 år + Jak</td></tr>

もらいたかった

SKUUTELG 001772377777 テスト SKUTELG - mottatt。Vilt: Okse 2,5 år + Jak

削除する必要があります

<tr><td>

こんな感じで試してます…

var testString = "MY STRING"
var stringArray = testString.Split('<tr><td>');
stringArray.Remove("<tr><td>);
var output = String.Join("<tr><td>", stringArray);

しかし、これは機能していません..

4

2 に答える 2

5

私があなたを正しく理解していて、この場合 HTML タグを削除するだけでよい場合は、分割の上に単純な文字列を置き換える必要があります。

var testString = "your string";

var array = str.Split(new string[] { "<tr>", "<td>" }, 
                       StringSplitOptions.RemoveEmptyEntries);

return string.Join("", array.Skip(1)).Replace("</tr>", "").Replace("</td>", " ");

基本的な手順:

  • <tr>配列を分割するには、と<td>タグの両方を含む文字列の配列を使用します。
  • 次に、LINQ を使用して最初の要素をスキップし、要素を再び結合します。
  • 最終的なスペースに応じて、終了タグを空の文字列またはスペースに置き換えます。
于 2012-09-27T04:27:04.173 に答える
1

htmlパーサーでhtmlを解析するのはどうですか?

string html = @"<tr><td>14.54.49</td><td>SKUTTELG</td><td>001772377777</td><td>test </td><td>SKUTTELG - mottatt. Vilt: Okse 2,5 år + Jak</td></tr>";

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

var tds = String.Join(" ", doc.DocumentNode
                              .SelectNodes("//td").Select(x => x.InnerText)
                              .Skip(1));

trテーブルに複数ある場合

var lines = String.Join("\n",doc.DocumentNode.SelectNodes("//tr")
                                .Select(node=>String.Join(" ",
                                                    node.Descendants("td").Skip(1)
                                                        .Select(x=>x.InnerText))));
于 2012-09-27T06:19:54.117 に答える