2012-03-12 11 views
0

私はopenxml sdkに関するかなり基本的な質問があります。私はpptxドキュメントを処理したい。Openxml 2.0 xml処理

slideMaster1.xmlの私のC#コードでは、ノードの型がp:cNvPrのXMLNodeのリストを取得したいのですが、その値を文字列のリストに格納したいからです。

どうすればいいですか?

答えて

0

ゾルタン、 'p:cNvPr'ノードは、非ビジュアル描画プロパティで、非ビジュアルキャンバスプロパティを指定します。詳細は、MSDN documentationを参照してください。

私はパワーポイントを開き、sdkを使ってマスター内のすべてのレイアウトの非ビジュアルな描画プロパティすべての名前属性を表示する小さなWindowsフォームアプリケーションを作成しました。以下のスクリーンショットとlink for zip of the Solutionをご覧ください。

enter image description here

コード基本的に以下のことを行います。OPENXMLが私のために(私はそれが私の愚かに聞こえるかもしれない、知っている)ことを行いますので、私はPPTX自分自身を解凍する必要はありません

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

わかりませんが、LinqToXmlはopenxmlなしで処理できると思います。

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

それは、私はそれが名前空間を処理しますかわからないようp:に咳があります。あなたのxmlのサンプルを与えるなら、私はそれをテストすることができます。

+0

とだからこそ私はSDDを使ってやりたい –