删除String C#的一些部分

时间:2012-09-27 04:22:55

标签: c# string c#-4.0

我有一个像这样的字符串

  

< tr>< td> 14.54.49< / td>< td> SKUTTELG< / td>< td> 001772377777< / td>< td> test< / td>< td> SKUTTELG - mottatt。 Vilt:Okse2,5år+ Jak< / td>< / tr>

我想得到

  

SKUUTELG 001772377777测试SKUTTELG - mottatt。 Vilt:Okse2,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);

但这不起作用..

2 个答案:

答案 0 :(得分: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跳过第一个元素并将元素重新连接在一起。
  • 使用空字符串或空格替换结束标记,具体取决于您要结束的间距。

答案 1 :(得分:1)

如何使用html parser解析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))));