我正在为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