Question

Je dois obtenir une liste des balises contenant un attribut spécifique. J'utilise xml DITA et je dois trouver tous les tags qui a un attribut href.

Le problème ici est que l'attribut peut être à l'intérieur toute balise afin XPath ne fonctionnera pas dans ce cas. Par exemple, une balise d'image peut contenir un href, une étiquette de topicref peut contenir un href, et ainsi de suite.

Je dois donc obtenir un XmlNodeList (retourné par la méthode getElementByTagName). Idéalement je besoin d'un getElementByAttributeName méthode qui devrait revenir XmlNodeList.

Était-ce utile?

La solution

Je pourrais être mal compris votre problème ici, mais je pense que vous pourriez utiliser une expression XPath.

var nodes = doc.SelectNodes("//*[@href='pic1.jpg']");

Le doit revenir au-dessus de tous les éléments avec href='pic1.jpg', où doc est le XmlDocument

Autres conseils

Si vous êtes sur C #, le travail d'approche pourrait pour vous:

XDocument document = XDocument.Load(xmlReader);
XAttribute xa = new XAttribute("href", "pic1.jpg");
var attrList = document.Descendants().Where (d => d.Attributes().Contains(xa));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top