【发布时间】:2009-07-08 19:58:46
【问题描述】:
我正在为 Excel 工作表开发 Open XML 文档格式。
var nodeList = WorksheetXml.SelectNodes(@"//c[child::f]");
它应该返回所有带有公式的行,但它不返回任何内容。 Oxygen Editor 上的相同 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