0

我有一个关于 openxml sdk 的非常基本的问题。我想处理 pptx 文件。

在我来自 slideMaster1.xml 的 c# 代码中,我想获取节点类型为 p:cNvPr 的每个 XMLNode 的列表,因为我想将它们的值存储在字符串列表中。

我怎样才能做到这一点?

4

2 回答 2

0

不确定,但我认为 LinqToXml 可以在没有 openxml 的情况下处理它。

string[] values = XElement.Load("slideMaster1.xml")
                       .Descendants("p:cNvPr")
                       .Select(x => (string)x)
                       .ToArray();

它可能会咳嗽,p:因为我不确定它将如何处理命名空间。如果您提供您的 xml 示例,我可以对其进行测试。

于 2012-03-12T15:11:21.150 回答
0

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.
    }
}
于 2012-03-13T22:14:31.513 回答