Harlequin: [C#] selektieren mit XPATH

Beitrag lesen

Yerf!

Der Debugger sagt:

String.Format("/ss:Cell[@ss:Index={0}]", index + 1) "/ss:Cell[@ss:Index=7]" string

Sieht soweit gut aus. Ein

XmlNode test = row.SelectSingleNode("/ss:Cell[@ss:Index=7]", nsmgr);

liefert aber auch null.

Der Default-Namespace der Zelle ist der gleiche wie der für "ss", liegt an

<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"  
 xmlns:o="urn:schemas-microsoft-com:office:office"  
 xmlns:x="urn:schemas-microsoft-com:office:excel"  
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"  
 xmlns:html="http://www.w3.org/TR/REC-html40">

Den Namespace-Manager lege ich so an:

nsmgr = new XmlNamespaceManager(cTypeDoc.NameTable);
nsmgr.AddNamespace("ss", "urn:schemas-microsoft-com:office:spreadsheet");

Das selektieren der Elemente aus dem Default-Namespace über den prefix "ss" funktioniert auch, denn genau so hol ich mir die Rows (über die ich dann mit foreach iteriere).

XmlNodeList rows = cTypeDoc.SelectNodes("/ss:Workbook/ss:Worksheet/ss:Table/ss:Row", nsmgr);

Gruß,

Harlequin

--
RIP --- XHTML 2
nur die Besten sterben jung