Wie ein XML-Tag mit einem bestimmten Attribut (in C #) zu finden
Frage
Ich brauche eine Liste von Tags zu erhalten, die ein bestimmtes Attribut enthalten. Ich bin mit DITA XML und ich brauche alle Tags, um herauszufinden, die a href Attribut hat.
Das Problem hierbei ist, dass das Attribut innerhalb jeden Tages sein kann, so XPath wird in diesem Fall nicht funktionieren. Zum Beispiel kann ein Image-Tag a href enthält, ein topicref Tag a href enthalten kann, und so weiter.
Also brauche ich eine XmlNodeList
zu bekommen (wie von der getElementByTagName
Methode zurückgegeben). Im Idealfall muss ich eine Methode getElementByAttributeName
dass XmlNodeList
zurückkehren sollte.
Lösung
Ich könnte Ihr Problem hier haben falsch verstanden, aber ich denke, Sie möglicherweise einen XPath-Ausdruck verwenden können.
var nodes = doc.SelectNodes("//*[@href='pic1.jpg']");
Das oben gezeigte sollten alle Elemente mit href='pic1.jpg'
zurück, wo doc
ist die XmlDocument
Andere Tipps
Wenn Sie auf C #, dann wird der folgende Ansatz funktionieren könnte für Sie:
XDocument document = XDocument.Load(xmlReader);
XAttribute xa = new XAttribute("href", "pic1.jpg");
var attrList = document.Descendants().Where (d => d.Attributes().Contains(xa));