Может ли DocumentNode.SelectSingleNode пропускать выбор событий тегов привязки? - PullRequest
1 голос
/ 19 июня 2010

Учитывая следующее ...

HtmlNode myDiv = doc.DocumentNode.SelectSingleNode("//div[@id='someid']");

... где результирующий myDiv.InnerHtml содержит:

<span>...other content I want to consume...</span>
<a href="http://www.somewhere.com" onmousedown="return somefunc('random','parm','values','SHXA213')">Click Me</a>
<span>...and more content I want to consume...</span>

Есть ли способ не выберите onmousedown часть тега привязки?

Решение
Мне нужно было сделать следующее:

HtmlNodeCollection anchors = myDiv.SelectNodes(@"//a[@class='someclass']");
anchors[0].SetAttributeValue("onmousedown", "");

// could have also used anchors[0].Attributes.Remove() or .RemoveAt()

1 Ответ

0 голосов
/ 19 июня 2010

Есть ли способ не выбирать onmousedown часть тега привязки?

Нет. Не с XPath (SelectSingleNode).

XPath - это язык запросов, и он не может изменять узлы, выбранные выражением XPath. Вам нужен дополнительный язык (DOM или XSLT) для изменения узлов (например, удаление атрибутов).

...