2012-09-27 111 views
1

我有這樣刪除字符串C#的某些部分

< TR> < TD> 14.54.49 </TD> < TD> SKUTTELG </TD> < TD> 001772377777 </TD的字符串> < td> test </td> < td> SKUTTELG - mottatt。 VILT:Okse 2,5 AR +的Jak </TD> </TR>

我希望得到

SKUUTELG 001772377777測試SKUTTELG - mottatt。 VILT:Okse 2,5 AR +的Jak

需要刪除

< TR> < TD>

我嘗試一下這樣的...

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

但是這不起作用..

+1

' '​​''是不是有效的C#,你需要使用' 「​​」' –

+1

你也想刪除'14.54.49'? –

回答

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跳過第一個元素並將元素連接在一起。
  • 根據要結束的間距,用空字符串或空格替換結束標記。
+0

這將不會像OP中的「想要獲得」那樣插入空格。 –

+0

@DourHighArch好點。修改代碼以用空格替換標籤,然後修剪尾部的前導和尾部空格。 –

+0

這將插入多個空格;也許只能用空格替換「」。 –

1

如何解析一個html與html parser

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))));