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
RIP --- XHTML 2
nur die Besten sterben jung