2011-09-16 62 views
2

這是我的xml文件。如何使用xslt2.0檢索當前節點的(ancestor :: w:p)的前同胞?

<w:document> 
    <w:body> 
     <w:p> 
      <w:pPr> 
        <w:pStyle w:val="Heading1"/> 
      </w:pPr> 
      <w:r> 
       <w:t>Para1</w:t> 
      </w:r> 
     </w:p> 

     <w:p> 
     <w:pPr> 
      <w:pStyle w:val="Heading2"/> 
     </w:pPr> 
     <w:r> 
      <w:t>Para2</w:t> 
     </w:r> 
     </w:p> 

     <w:p> <!-- Current Node --> 
      <w:pPr> 
      <w:pStyle w:val="Heading3"/> 
      </w:pPr> 
      <w:r> 
       <w:t>Para3</w:t> 
      </w:r> 
     </w:p> 
    </w:body> 
</w:document> 

所以,

  1. 現在我想獲取當前節點的祖先<w:p>
  2. 然後我需要得到的前同輩這<w:p> [1]
  3. 最後需要檢索<w:pPr>-<w:pStyle> - >沃頓知識在線:在<w:p>的VAL [1]。

我想這一個...但是失敗...

preceding-sibling::(ancestor::w:p)[1]/w:pPr/w:pStyle/@w:val 
+0

測試我的答案。它應該是你正在尋找的東西。我認爲你只需要以正確的方式使用軸。 –

+0

empo:它不工作... – Saravanan

+0

XPath中有一個錯字(缺少'l')。現在檢查我的答案。 –

回答

1

如果我理解正確的話,你想:

ancestor::w:p[1]/preceding-sibling::w:p[1]/w:pPr/w:pStyle/@w:val 

如果當前節點是<w:pStyle w:val="Heading3"/>

如果當前節點是w:p你不想始祖了,而是直接前置兄弟:

preceding-sibling::w:p[1]/w:pPr/w:pStyle/@w:val 

希望它能幫助。

相關問題