2011-08-15 52 views
1

我有以下XML的文件:的XPath 0- *子級別

<?xml version="1.0" encoding="UTF-16"?> 
<Export> 
    <Folder ID="1004"> 
     <Object ID="124" Name="NameABC" /> 
    </Folder> 
    <Folder ID="1016"> 
     <Folder Name="B"> 
      <Object ID="124" Name="Name1" /> 
       <Folder Name="A"> 
        <Object ID="121244" Name="Name2" /> 
        <Object ID="122134" Name="Name12" /> 
        <Folder Name="KS"> 
         <Object ID="667" Name="Name43" /> 
        </Folder> 
       </Folder> 
     </Folder> 
    </Folder> 
</Export> 

現在我需要得到所有<Object>的其下有一個ID和名稱。 有時在第一個文件夾下有0個文件夾,ID爲1016,有時爲4.

我需要使用XPath表達式。我希望你能幫助我。謝謝。

+1

請中,添加所希望的輸出的一個例子。 –

+0

對不起,我自己找到了解決方案:/導出/文件夾[@ ID = 1016]/descendant :: Object – sTaX

+0

太棒了,所以補充說明一個解決方案和_accept_答案,只要你可以在以後的日子請。請儘量不要留下問題。 – andyb

回答

1

//folder[@ID='some_id' and @Name='some_name']/descendant::*

參見:

xpath axes

0
<xsl:apply-templates select="//Object"> 
    <xsl:value-of select="@ID"/> - <xsl:value-of select="@Name"/> 
</xsl:apply-templates> 

將匹配所有<Object>元件和輸出的ID和名稱屬性值。

後代選擇器(從documentation//是短期的/descendant-or-self::node()/