2012-01-23 19 views
7

Vorrei selezionare i fogli di stile in un documento XHTML, che contiene non solo la descrizione, ma anche href.Come verificare la presenza di più attributi in XPath?

Ad esempio

<link rel="stylesheet" href="123"/> 

deve essere selezionato, e

<link rel="stylesheet"/> 

non dovrebbe.

Allo stato attuale, lo sto facendo in questo modo:

foreach (XmlNode n in xml.SelectNodes(@"//link[@rel='stylesheet']")) 
{ 
    if (n.Attributes["href"]==null||n.Attributes[""].Value==null) 
    { 
     continue; 
    } 
    var l = Web.RelativeUrlToAbsoluteUrl(stuffLocation, n.Attributes["href"].Value); 
} 

ma ho il sospetto c'è un modo molto migliore di fare questo. È lì?

+0

Seconda parte della prova dovrebbe leggere 'n.Attributes [ "href"] .Value == null' :) –

risposta

7

Aggiungere and @href all'espressione attributo:

 
//link[@rel='stylesheet' and @href] 

Ciò dovrebbe consentire di omettere il controllo di tutto:

foreach (XmlNode n in xml.SelectNodes(@"//link[@rel='stylesheet' and @href]")) 
{ 
    var l = Web.RelativeUrlToAbsoluteUrl(stuffLocation, n.Attributes["href"].Value); 
} 
Problemi correlati