2014-10-08 83 views
2

我試圖通過PowerPoint幻燈片中的shapetree深入瞭解形狀的佔位符值。在shapetree的形狀看起來像這樣:使用Open XML SDK 2.0獲取佔位符值

<p:sp> 
    <p:nvSpPr> 
     <p:cNvPr id="10" name="Text Placeholder 2"/> 
     <p:cNvSpPr> 
      <a:spLocks noGrp="1"/> 
     </p:cNvSpPr> 
     <p:nvPr> 
      <p:ph type="body" sz="quarter" idx="13" hasCustomPrompt="1"/> 
     </p:nvPr> 
    </p:nvSpPr> 
    <p:spPr> 
     <a:xfrm> 
      <a:off x="457200" y="3276601"/> 
      <a:ext cx="8229600" cy="838199"/> 
     </a:xfrm> 
     <a:prstGeom prst="rect"> 
      <a:avLst/> 
     </a:prstGeom> 
    </p:spPr> 
    <p:txBody> 
     <a:bodyPr lIns="91421" tIns="45710" rIns="91421" bIns="45710"/> 
     <a:lstStyle> 
      <a:lvl1pPr marL="0" indent="0" algn="ctr"> 
       <a:buFontTx/> 
       <a:buNone/> 
       <a:defRPr sz="2400" b="1" baseline="0"> 
        <a:solidFill> 
         <a:schemeClr val="tx1"/> 
        </a:solidFill> 
        <a:latin typeface="+mj-lt"/> 
        <a:cs typeface="Arial" pitchFamily="34" charset="0"/> 
       </a:defRPr> 
      </a:lvl1pPr> 
     </a:lstStyle> 
     <a:p> 
      <a:pPr lvl="0"/> 
      <a:r> 
       <a:rPr lang="en-US" dirty="0" smtClean="0"/> 
       <a:t>Click to enter course title</a:t> 
      </a:r> 
     </a:p> 
    </p:txBody> 
</p:sp> 

我感興趣的是得到看起來像這樣的部分:

<p:nvPr> 
    <p:ph type="body" sz="quarter" idx="13" hasCustomPrompt="1"/> 
</p:nvPr> 

我試圖讓idx值(13,在這種情況下, )。

我使用的是這個樣子的,至今說法(我說:「到目前爲止,」因爲我不知道如何完成這一發言):

var index = shape.NonVisualShapeProperties.NonVisualShapeDrawingProperties. <-??? 

同時在這點上代碼,我有我想要的形狀,我只是無法弄清楚如何使用Open Office SDK獲取佔位符值。我想我可以把它看作普通的舊XML並按元素名稱來獲取它,但我認爲OOXML SDK會爲此內置一些方法。

回答

3

終於想通了如何做到這一點:

index = int.Parse(shape.NonVisualShapeProperties.ApplicationNonVisualDrawingProperties.PlaceholderShape.Index);

我用NonVisualShapeDrawingProperties時,我應該一直在使用ApplicationNonVisualDrawingProperties