我有一个关于 openxml sdk 的非常基本的问题。我想处理 pptx 文件。
在我来自 slideMaster1.xml 的 c# 代码中,我想获取节点类型为 p:cNvPr 的每个 XMLNode 的列表,因为我想将它们的值存储在字符串列表中。
我怎样才能做到这一点?
我有一个关于 openxml sdk 的非常基本的问题。我想处理 pptx 文件。
在我来自 slideMaster1.xml 的 c# 代码中,我想获取节点类型为 p:cNvPr 的每个 XMLNode 的列表,因为我想将它们的值存储在字符串列表中。
我怎样才能做到这一点?
不确定,但我认为 LinqToXml 可以在没有 openxml 的情况下处理它。
string[] values = XElement.Load("slideMaster1.xml")
.Descendants("p:cNvPr")
.Select(x => (string)x)
.ToArray();
它可能会咳嗽,p:
因为我不确定它将如何处理命名空间。如果您提供您的 xml 示例,我可以对其进行测试。
Zoltan,“p:cNvPr”节点是指定非可视画布属性的非可视绘图属性。有关详细信息,请参阅MSDN 文档。
我编写了一个小型 Windows 窗体应用程序,它将打开一个 power point 并使用 sdk 显示 Master 中所有布局的所有非可视绘图属性的名称属性。请参阅下面的屏幕截图和解决方案 zip 的链接。
该代码基本上执行以下操作:
foreach (var slideMasterPart in PresentationPart.SlideMasterParts)
{
foreach (var layouts in slideMasterPart.SlideLayoutParts)
{
get each of the layouts.SlideLayout.CommonSlideData.ShapeTree.Descendants<NonVisualDrawingProperties>();
and put the name attribute to the grid.
}
}