Come selezionare i nodes per attributo che inizia con … in C #

Ho questo documento xml e voglio selezionare i nodes per attributo che inizia con ‘/ dipendenti /’.

Employee 1 Robert
Employee 2 Jennifer

Quindi in C #, farei qualcosa del genere:

 parentNode.SelectNodes("//table/tr/th/a[@href='/employees/.....']") 

Questo è ansible con C #?

Grazie!

La semplice funzione starts-with fa ciò di cui hai bisogno:

 parentNode.SelectNodes("//table/tr/td/a[starts-with(@href, '/employees/')]") 

usando puro LINQ puoi fare qualcosa del genere

 var doc = XDocument.Parse("YOUR_XML_STRING"); var anchors = from e in doc. Descendants("a") where e.Attribute("href").Value.StartsWith("/employee/") select e; 

// ora puoi deselezionare qualsiasi nodo eseguendo una combinazione di .Parent.Parent …..

Quindi, qualcosa del genere?

 var xml = @"
Employee 1 Robert
Employee 2 Jennifer
"; var doc = new XmlDocument(); doc.LoadXml(xml); var employees = doc.SelectNodes("/table/tr/td/a[starts-with(@href, '/employees/')]"); DoWhatever(employees);

Certo, puoi caricare il tuo XML nell’istanza di XDocument e usare il metodo XPathSelectElements per cercare usando la tua espressione.