我正在爲Excel表單打開XML文檔格式。爲什麼XPath表達式不會在C#中返回任何結果,但它在C#之外呢?
var nodeList = WorksheetXml.SelectNodes(@"//c[child::f]");
它應該返回所有具有公式的行,但它不返回任何內容。氧氣編輯器上的同一個xml,當應用相同的xpath表達式時,返回所有這些。
我在複製WorksheetXml內部xml以確保內容是相同的......你知道爲什麼C#不能按預期的方式工作嗎?
編輯:命名空間問題
我已經把這個:
var manager = new XmlNamespaceManager(WorksheetXml.NameTable);
manager.AddNamespace(string.Empty, @"http://schemas.openxmlformats.org/spreadsheetml/2006/main");
manager.AddNamespace("r", @"http://schemas.openxmlformats.org/officeDocument/2006/relationships");
var nodeList = WorksheetXml.SelectNodes(@"//c[child::f]", manager);
,並沒有工作,我認爲這不是一個命名空間的問題。
btw,「// c [f]」會更簡單; -p – 2009-07-08 20:06:10