2009-10-08 44 views
1

在.NET中尋找一個簡單的方法來解析html文件以獲取<u></u>標籤中的所有值。在.net中簡單解析HTML文件<U></U>值?

例:<U>105F</U>

可能有很多的這些與其他標籤的文件中,但所有我需要的是通過循環並取回所有值的列表,以便他們CNA然後進行處理。

尋找一個輕微小的方式來處理這個問題。

+0

您使用的是vb.net還是C#? – CoderDennis 2009-10-08 21:02:49

回答

3

絕對正則表達式:

Dim myPattern As String = "<U>(.*?)</U>" 

    For Each thisMatch As Match In System.Text.RegularExpressions.Regex.Matches(myPage1HTML, myPattern,RegexOptions.IgnoreCase) 
      Response.write(thisMatch.ToString) 
    Next 
+1

這是一個很好的資源: http://www.regular-expressions.info/dotnet.html – ChickenMilkBomb 2009-10-08 20:58:37

+0

-1建議用正則表達式解析HTML。請參閱http://www.codinghorror.com/blog/archives/000253.html – TrueWill 2009-10-09 02:54:51

+0

正則表達式在我的情況下工作得很好,因爲html非常乾淨並且每次都對內容特定。 – schooner 2009-10-09 09:23:46

0

如果HTML文檔格式正確,XPath將是我的第一選擇。

請求的代碼示例(從未測試過);

var doc     = new XPathDocument (@"path\to\file.html"); 
XPathNavigator navigator = doc.CreateNavigator(); 
XPathNodeIterator iterator = navigator.Select ("//U"); 
while (iterator.MoveNext()) 
    Console.WriteLine ("U: {0}", iterator.Current.Value); 
+0

它與所有匹配標籤和非常基本的html格式完美匹配。你有沒有爲此使用XPath的樣本? – schooner 2009-10-08 20:55:47

0
XmlNodeList list = doc.SelectNodes("//u"); 

獲取你U節點

0

樣品的名單使用XPath用的XMLDocument

XmlDocument doc = new XmlDocument(); 
doc.Load("file.html"); 

XmlNodeList nodeList = doc.DocumentElement.SelectNodes("//u"); 
foreach (XmlNode title in nodeList) { 
    Console.WriteLine(title.InnerXml); 
} 

其從取

+0

這裏的問題是它非常脆弱。如果有任何HTML格式不正確,這將無法正常工作。 – ChickenMilkBomb 2009-10-08 21:19:48

+0

是真實的,但他特別寫了xhtml格式,在他的評論下面 – Itsik 2009-10-08 21:24:17

-2

Html Agility Pack

強烈建議不要使用正則表達式來解析HTML。他們是一個偉大的工具,但他們不適合這份工作。 HTML太複雜了。只要你碰到其中一個邊緣情況(嵌入式標籤,嵌套標籤等),你就會明白我的意思。

編輯:另請參見Coding Horror: Parsing: Beyond Regex

+0

-1格式正確,用於過於簡單的問題 – ChickenMilkBomb 2009-10-09 03:11:15

+0

因爲我對這個具體的HTML正則表達式的需求完美地工作。 – schooner 2009-10-09 09:22:38