私はExcelシートのためのOpen XMLドキュメントフォーマットに取り組んでいます。なぜXPath式はC#で結果を返さないが、C#の外で行うのはなぜですか?
var nodeList = WorksheetXml.SelectNodes(@"//c[child::f]");
これはすべての行を論理式で返しますが、何も返しません。 Oxygen Editorの同じxmlは、同じxpath式を適用すると、それらのすべてを返します。
コンテンツが同じであることを保証するためにWorksheetXml inner xmlをコピーしています... C#が期待通りに動作しない理由を知っていますか?
EDIT:名前空間の問題、私はこれを入れている
:
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 –