Как проверить наличие нескольких атрибутов в XPath?
Я хотел бы выбрать таблицы стилей в документе XHTML, которые содержат не только описание, но и href.
<link rel="stylesheet" href="123"/>
должен быть выбран, и
<link rel="stylesheet"/>
не должно.
В настоящее время, я делаю это так:
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);
}
но я подозреваю, что есть гораздо лучший способ сделать это. Есть?
1 ответов
добавить and @href
для выражения атрибутов:
//link[@rel='stylesheet' and @href]
Это должно позволить вам отказаться от проверки:
foreach (XmlNode n in xml.SelectNodes(@"//link[@rel='stylesheet' and @href]"))
{
var l = Web.RelativeUrlToAbsoluteUrl(stuffLocation, n.Attributes["href"].Value);
}