Openxml 2.0 xml обработка - PullRequest
       57

Openxml 2.0 xml обработка

0 голосов
/ 12 марта 2012

У меня есть довольно простой вопрос относительно openxml sdk. Я хочу обработать документы pptx.

В моем коде c # из slideMaster1.xml я хочу получить список каждого XMLNode, в котором тип узла - p: cNvPr, потому что я хочу сохранить их значения в списке строк.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

Zoltan, узлы 'p: cNvPr' являются невизуальными свойствами рисования, которые определяют невизуальные свойства холста.См. документацию MSDN для получения более подробной информации.

Я написал небольшое приложение для оконных форм, которое откроет точку питания и отобразит атрибуты имени для всех невизуальных свойств чертежа для всехмакеты в мастере с использованием SDK.Пожалуйста, смотрите скриншот ниже и ссылку для почтового индекса решения .

enter image description here

Код в основном делает следующее:

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.
    }
}
0 голосов
/ 12 марта 2012

Не уверен, но я думаю, что LinqToXml справится с этим без openxml.

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

Это может кашлять на p:, так как я не уверен, как он справится с пространством имен. Если вы дадите образец вашего xml, я могу проверить его.

...