1

我有一个这样的字符串

<tr><td>14.54.49</td><td>SKUTTELG</td><td>001772377777</td><td>测试</td><td>SKUTTELG - 莫塔特。Vilt: Okse 2,5 år + Jak</td></tr>

我想得到

SKUUTELG 001772377777 测试 SKUTTELG - 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>", " ");

基本步骤:

  • 要拆分数组,请使用包含 the<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 回答