¿Cómo encontrar una etiqueta XML con un atributo específico (en C #)
Pregunta
necesito para obtener una lista de las etiquetas que contienen un atributo específico. Estoy usando XML DITA y necesito averiguar todas las etiquetas que tiene un atributo href.
El problema aquí es que el atributo puede estar dentro de cualquier etiqueta de modo XPath no funcionará en este caso. Por ejemplo, una etiqueta de imagen puede contener un href, una etiqueta topicref puede contener a href, y así sucesivamente.
Por lo tanto, necesidad de conseguir un XmlNodeList
(devuelto por el método getElementByTagName
). Lo ideal es que necesito un getElementByAttributeName
método que debe devolver XmlNodeList
.
Solución
Me podría haber entendido mal su problema aquí, pero creo que usted podría utilizar una expresión XPath.
var nodes = doc.SelectNodes("//*[@href='pic1.jpg']");
Lo anterior debería devolver todos los elementos con href='pic1.jpg'
, donde doc
es la XmlDocument
Otros consejos
Si se encuentra en C #, a continuación, el siguiente trabajo puede enfoque para usted:
XDocument document = XDocument.Load(xmlReader);
XAttribute xa = new XAttribute("href", "pic1.jpg");
var attrList = document.Descendants().Where (d => d.Attributes().Contains(xa));