2017-11-02 13 views
0

現在、私のニーズに合わせてXMLを変換しています。 XMLコードは次のとおりです。XSLT IDと一致する行が1つだけ表示されます

<stk:stockPriceItem> 
<stk:stockPrice> 
<typ:id>11</typ:id> 
<typ:ids>sleva 3%</typ:ids> 
<typ:price>743.6</typ:price> 
</stk:stockPrice> 
<stk:stockPrice> 
<typ:id>9</typ:id> 
<typ:ids>V.I.P. 0%</typ:ids> 
<typ:price>613.3</typ:price> 
</stk:stockPrice> 
<stk:stockPrice> 
<typ:id>4</typ:id> 
<typ:ids>Velko 5%</typ:ids> 
<typ:price>552</typ:price> 
</stk:stockPrice> 
<stk:stockPrice> 
<typ:id>12</typ:id> 
<typ:ids>eshop</typ:ids> 
<typ:price>651.6</typ:price> 
</stk:stockPrice> 
<stk:stockPrice> 
<typ:id>5</typ:id> 
<typ:ids>Malo 10%</typ:ids> 
<typ:price>582.6</typ:price> 
</stk:stockPrice> 
<stk:stockPrice> 
<typ:id>1</typ:id> 
<typ:ids>Prodejní</typ:ids> 
<typ:price>766.6</typ:price> 
</stk:stockPrice> 
</stk:stockPriceItem> 

私の新しい変換されたXMLが唯一の標準表示されるとき、私は、出力を必要とする:標準のための価格:ID = 12。

だから、次のように:私は解決策を見つけることができなかったとして

<stk:stockPrice> 
<typ:price>1222</typ:price> 
</stk:stockPrice> 

すべてのヘルプははるかにオンライン、高く評価されるだろうと私はXSLTを使用して、かなりニュービーです。 ありがとうございます。

あなたはこのようなこのようなターゲット要素を取得するためのパターンで述語を使用することができます
+0

名前空間がある場合は、常にルートタグを含めます。完全なXMLを投稿してください。 – Parfait

答えて

0

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:stk="urn:stk" xmlns:typ="urn:typ" 
    exclude-result-prefixes="xs" 
    version="2.0"> 

    <xsl:output indent="yes"/> 

    <xsl:template match="stk:stockPriceItem"> 
     <xsl:apply-templates/> 
    </xsl:template> 

    <xsl:template match="stk:stockPrice[string(typ:id) eq '12']" priority="5"> 
     <xsl:copy> 
      <xsl:copy-of select="typ:price"/> 
     </xsl:copy> 
    </xsl:template> 

    <xsl:template match="node()"/> 

</xsl:stylesheet> 

[出力]

<?xml version="1.0" encoding="UTF-8"?> 
<stk:stockPrice xmlns:stk="urn:stk" xmlns:typ="urn:typ"> 
    <typ:price>651.6</typ:price> 
</stk:stockPrice> 

は、あなたがそれらを指定していなかったので、名前空間宣言が一時的であることに注意してください入力XMLファイル

0

これを使用して私の問題の解決策を見つけ出すことができました。

<xsl:value-of select="stk:stockPrice[typ:id=12]/typ:price"/> 

ありがとうございました。

関連する問題