我有一個關於openxml sdk的基本問題。我想處理pptx文件。Openxml 2.0 xml處理
在我的slideMaster1.xml的c#代碼中,我想獲取節點類型爲p的每個XMLNode列表:cNvPr,因爲我想將它們的值存儲在字符串列表中。
我該怎麼做?
我有一個關於openxml sdk的基本問題。我想處理pptx文件。Openxml 2.0 xml處理
在我的slideMaster1.xml的c#代碼中,我想獲取節點類型爲p的每個XMLNode列表:cNvPr,因爲我想將它們的值存儲在字符串列表中。
我該怎麼做?
Zoltan, 'p:cNvPr'節點是指定非視覺畫布屬性的非可視圖形屬性。有關更多詳細信息,請參見MSDN documentation。
我寫了一個小窗口窗體應用程序,將打開一個電源點,並顯示所有所有使用SDK在主佈局的非可視圖紙屬性的名稱屬性。請參閱下面的屏幕截圖和link for zip of the Solution。
的代碼基本上執行以下操作:
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.
}
}
不確定,但我認爲LinqToXml可以處理沒有openxml。
string[] values = XElement.Load("slideMaster1.xml")
.Descendants("p:cNvPr")
.Select(x => (string)x)
.ToArray();
它可出現咳嗽的p:
因爲我不知道它會如何處理的命名空間。如果你給你的xml樣本,我可以測試它。
我不想解壓PPTX自己,因爲OPENXML確實對我來說(我知道,這聽起來愚蠢從我)和這就是爲什麼我寧願使用sdk來做它 – 2012-03-12 15:29:09