[英]XML: Searching elements for specific text using C#
我正在嘗試從不同的網站獲取PDF鏈接列表。 首先,我使用Web客戶端類下載頁面源。 然后我使用sgmlReader將HTML轉換為XML。 所以對於一個特定的網站,我會得到一個看起來像這樣的標簽:
<p><a href="pub/1985_to_1997_Board_Action_Summary.pdf">1985 to 1997 Board Action Summary</a></p>
我需要獲取包含“.pdf”的所有鏈接。 顯然並非所有網站的布局都相同,所以只搜索<p>
標簽,不夠動態。 我寧願不使用linq,但如果必須,我會的。 提前致謝。
Linq讓這很容易......
var hrefs = doc.Root.Descendants("a")
.Where(a => a.Attrib("href").Value.ToUpper().EndsWith(".PDF"))
.Select(a => a.Attrib("href"));
你走吧! (注意:這是從內存中做到的,所以你可能需要稍微修復一下)
這將分解沒有href
(錨點)的<a/>
標簽,但你可以肯定地解決這個問題......
我想你有兩個選擇。 如果只需要鏈接,則可以使用正則表達式查找以.pdf結尾的字符串的匹配項。 如果您需要操作XML結構或從XML獲取其他值,最好使用XmlDocument並使用XPath查詢找出其中包含pdf文件鏈接的節點。 使用LINQ to XML只會減少您必須編寫的代碼行數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.