Mam XML, który wygląda tak:XPath: Jak wybrać węzeł według jego atrybutu?
<?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>
[..]
Próbuję wybrać węzeł o indeksie:
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;
Próbowałem też komentowanym wersje, ale nie zwraca żadnych wynik. Wszelkie sugestie?
Dlaczego 0 należy ująć w nawiasy klamrowe? Używam XPATH wewnątrz Novell IDM, a @ index = 0 byłoby tam wystarczające. Co oznaczają nawiasy klamrowe? – geoffc
nie jest częścią xpath, jest częścią String.Format, zostanie zastąpiony pierwszym parametrem (czyli procentem) –