XPath: Wie einen Knoten auswählen, indem Sie dessen Attribut?
Ich habe ein XML das geht wie folgt:
<?xml version="1.0" encoding="utf-8" ?>
<colors>
<color index = "0">#FF0000</color>
<color index = "1">#FF0200</color>
<color index = "2">#FF0300</color>
<color index = "3">#FF0500</color>
[..]
Ich versuche einen Knoten auswählen, indem Sie den index:
XmlDocument ColorTable = new XmlDocument();
ColorTable.Load(HttpContext.Current.Server.MapPath("~/App_Data/ColorTable.xml"));
int percentage = 2;
string xpath = string.Format(@"//color[index={0}]", percentage.ToString());
//string xpath = string.Format(@"//color[index=""{0}""]", percentage.ToString());
//string xpath = string.Format(@"//color[index='{0}']", percentage.ToString());
var r = ColorTable.SelectSingleNode(xpath).Value;
Versuchte ich auch, die kommentierte Versionen, aber es hat kein Ergebnis zurückgegeben.
Jede Anregung?
InformationsquelleAutor pistacchio | 2009-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
//color[@index='{0}']
statt. Das @ - Zeichen bedeutet "Attribut".Ich beachten Sie, dass Sie ein verbatim string literal durch die Art und Weise, das @ - Zeichen bei der start der Zeichenfolge. Es gibt keine Notwendigkeit in diesem Fall - Sie haben noch keine backslashes in der Zeichenkette, und es ist nicht multi-line. Sie brauchen auch nicht explizit aufrufen
ToString
aufpercentage
- es werden automatisch umgewandelt.seine nicht Teil des xpath, es ist ein Teil der Zeichenfolge.Format, es wird ersetzt mit der 1. param (dh den Prozentsatz)
InformationsquelleAutor Jon Skeet
BTW, für diejenigen von uns, die nicht sprechen native XPath, es gibt viele online-XPath "Spielplätze"
erlauben, Ihnen das schreiben von XML-und XPath-Ausdruck und die Ergebnisse online.
Immer, wenn ich fand mich in einer "XPath Hölle" normalerweise gehe ich um diese Spielplätze und probieren Sie verschiedene Kombination, bis ich meinen (gebraucht -) Ergebnisse, aus irgendeinem Grund funktioniert es schneller als das schreiben von C#/Python-test-Programm oder auch die Ausführung dieser aufgebläht sogenannte XML-Editoren.
InformationsquelleAutor Shay Erlichmen