你可以試試下面的代碼:
string input = String.Concat("<root>", @"<p></p><table><table><p></p></table></table>", "</root>");
XDocument doc = XDocument.Parse(input);
var valuesStr = doc.Root.Element("table").ToString();
string[] values = Regex.Matches(valuesStr, @"<.+?>")
.Cast<Match>()
.Select(o => o.Groups[0].Value)
.ToArray();
它首先創建的XDocument類(類解析XML之一)的一個實例,它增加了一個名爲「根」只是爲了能夠創建根元素XDocument(每個XML文檔都必須有一個根目錄)。 XML文檔的內容是從字符串中分析的。然後它得到包含文檔文本表示的字符串 - 首先要做Root屬性,因爲「table」元素剛好在根節點下面,之後調用帶有「table」的Element()方法獲取第一個元素在根節點下面有名字「table」(在這個例子中,節點下面只有一個這樣的元素),然後ToString()獲得文本描述。
Regex.Matches用於從字符串中提取每個單獨的元素,它返回MatchCollection,然後通過Cast()將其轉換爲IEnumerable,然後在IEnumerable上調用Select()擴展方法,該方法獲取文本值對於IEnumerable中的每個匹配,使用Regex.Matches,然後通過ToArray()方法將這些值作爲string []返回。
嘗試http://htmlagilitypack.codeplex.com/代替 – Chandu 2012-07-06 12:12:39
拆分是不會做到這一點,甚至正則表達式將是痛苦的。 xml/html解析器是要走的路。 – 2012-07-06 12:15:17
是否可以在xslt文件中使用html解析器? – Timsen 2012-07-06 12:20:55