Domanda

Ho bisogno di ottenere una lista di tag che contengono un attributo specifico. Sto usando DITA XML e ho bisogno di scoprire tutti i tag che ha un attributo href.

Il problema qui è che l'attributo può essere all'interno di ogni tag in modo XPath non funziona in questo caso. Ad esempio, un tag di immagine può contenere un href, un tag topicref può contenere un href, e così via.

Così ho bisogno di ottenere un XmlNodeList (come restituito dal metodo getElementByTagName). Idealmente ho bisogno di un metodo di getElementByAttributeName che dovrebbe restituire XmlNodeList.

È stato utile?

Soluzione

I potrebbe avere frainteso il problema qui, ma penso che si possa usare un'espressione XPath.

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

Quanto sopra deve restituire tutti gli elementi con href='pic1.jpg', dove doc rappresenta l'XmlDocument

Altri suggerimenti

Se sei in C #, quindi il seguente lavoro potrebbe approccio per voi:

XDocument document = XDocument.Load(xmlReader);
XAttribute xa = new XAttribute("href", "pic1.jpg");
var attrList = document.Descendants().Where (d => d.Attributes().Contains(xa));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top