openxmlsdkに関してかなり基本的な質問があります。pptxドキュメントを処理したい。
slideMaster1.xmlのc#コードでは、値を文字列のリストに格納するため、ノードのタイプがp:cNvPrであるすべてのXMLNodeのリストを取得したいと思います。
どうやってやるの?
openxmlsdkに関してかなり基本的な質問があります。pptxドキュメントを処理したい。
slideMaster1.xmlのc#コードでは、値を文字列のリストに格納するため、ノードのタイプがp:cNvPrであるすべてのXMLNodeのリストを取得したいと思います。
どうやってやるの?
Zoltan、「p:cNvPr」ノードは、非ビジュアル キャンバス プロパティを指定する非ビジュアル ドローイング プロパティです。詳細については、MSDN のドキュメントを参照してください。
パワー ポイントを開き、SDK を使用してマスター内のすべてのレイアウトのすべての非ビジュアル描画プロパティの名前属性を表示する小さな Windows フォーム アプリを作成しました。以下のスクリーン ショットと、ソリューションの 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.
}
}
確かではありませんが、LinqToXml は openxml なしでそれを処理できると思います。
string[] values = XElement.Load("slideMaster1.xml")
.Descendants("p:cNvPr")
.Select(x => (string)x)
.ToArray();
p:
名前空間をどのように処理するかわからないため、咳をする可能性があります。xml のサンプルを提供していただければ、テストできます。