Оберните узел xml тегом <A>, используя C # .net - PullRequest
0 голосов
/ 10 марта 2011

Я пытаюсь обернуть теги href вокруг всех тегов изображений, возвращаемых из веб-сервиса, используя C # .net.У меня есть следующий код, чтобы получить все изображения

foreach (XmlNode xNode in xDoc.SelectNodes("Document/Content//img"))
{
    // After I get the img I need to wrap a <a> tag around the image with an onclick attribute
}

Может ли кто-нибудь помочь мне с кодом?Я не могу добавить xml, возвращенный веб-сервисом, к этому Вопросу.

1 Ответ

2 голосов
/ 10 марта 2011

Это должно сработать:

foreach (XmlElement el in xDoc.SelectNodes("//img")) {
    // Replace image element with an 'a' element that wraps it
    var aElement = xDoc.CreateElement("a");

    aElement.SetAttribute("href", "http://example.com");
    aElement.SetAttribute("onclick", "alert('Maple syrup!');");
    aElement.AppendChild(el.Clone());

    el.ParentNode.ReplaceChild(aElement, el);
}

Обратите внимание, что тип, который я использовал в цикле, равен XmlElement вместо XmlNode (поскольку все img элементы должны быть ... элементами, и это позволяет нам делать больше, чем просто базовый XmlNode класс позволяет).

Вы также можете захотеть взглянуть на LINQ-to-XML , что делает создание XML гораздо менее раздражающим: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...