簡體   English   中英

XML:使用C#搜索特定文本的元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM