2013-04-03 49 views
2

選擇從XML特定元素我有一個這樣的XML中的可變 prdxml由XSLT

<root> 
    <product> 
    <estocklevel>0</estocklevel> 
    <id>8142229</id> 
    <isp_brand extra="isp_brand"></isp_brand> 
    <isp_produktserie extra="isp_produktserie"></isp_produktserie> 
    <isp_model extra="isp_model"></isp_model> 
    </product> 
    <product> 
    <estocklevel>0</estocklevel> 
    <id>8143793</id> 
    <isp_brand extra="isp_brand">Leitz</isp_brand> 
    <isp_produktserie extra="isp_produktserie">180</isp_produktserie> 
    <isp_model extra="isp_model">Bred</isp_model> 
    </product> 
    <product> 
    <estocklevel>0</estocklevel> 
    <id>8143794</id> 
    <isp_brand extra="isp_brand">Leitz</isp_brand> 
    <isp_produktserie extra="isp_produktserie">180</isp_produktserie> 
    <isp_model extra="isp_model">Smal</isp_model> 
    </product> 
    <product> 
    <id>8143796</id> 
    <isp_brand extra="isp_brand">Leitz</isp_brand> 
    <isp_produktserie extra="isp_produktserie">180</isp_produktserie> 
    <isp_model extra="isp_model">Smal</isp_model> 
    </product> 
</root> 

我想選擇產品節點其中id = 8143794從此,與使用環出。任何一個可以給任何線索

回答

2

很好用XSLT 1.0,我們真的需要知道一個名爲prdxml變量的類型是node-setresult tree fragment

如果是節點集,您可以簡單地選擇$prdxml/root/product[id = 8143794]。但是如果您有結果樹片段,則首先需要應用擴展功能,例如exsl:node-setexsl:node-set($prdxml)/root/product[id = 8143794]

因此,檢查變量設置的位置/方式,例如,

<xsl:variable name="prdxml" select="document('products.xml')"/> 

你有一個節點集,但是例如,

<xsl:variable name="prdxml"> 
<root> 
    <product> 
    <estocklevel>0</estocklevel> 
    <id>8142229</id> 
    <isp_brand extra="isp_brand"></isp_brand> 
    <isp_produktserie extra="isp_produktserie"></isp_produktserie> 
    <isp_model extra="isp_model"></isp_model> 
    </product> 
    <product> 
    <estocklevel>0</estocklevel> 
    <id>8143793</id> 
    <isp_brand extra="isp_brand">Leitz</isp_brand> 
    <isp_produktserie extra="isp_produktserie">180</isp_produktserie> 
    <isp_model extra="isp_model">Bred</isp_model> 
    </product> 
    <product> 
    <estocklevel>0</estocklevel> 
    <id>8143794</id> 
    <isp_brand extra="isp_brand">Leitz</isp_brand> 
    <isp_produktserie extra="isp_produktserie">180</isp_produktserie> 
    <isp_model extra="isp_model">Smal</isp_model> 
    </product> 
    <product> 
    <id>8143796</id> 
    <isp_brand extra="isp_brand">Leitz</isp_brand> 
    <isp_produktserie extra="isp_produktserie">180</isp_produktserie> 
    <isp_model extra="isp_model">Smal</isp_model> 
    </product> 
</root> 
</xsl:variable> 

你有一個結果樹片段和需要(爲exsl:node-set或類似和支持)第二種方法:

<xsl:variable name="prod" select="exsl:node-set($prdxml)/root/product[id = 8143794]" xmlns:exsl="http://exslt.org/common"/>