XSLT仅转换特定标记值节点

时间:2014-08-26 15:05:33

标签: xml xslt transformation

我想转换XML,但只选择具有给定值的特定记录。我怎么能这样做?

以下是XML示例。我只想获得CURRENCY值等于USD的记录。我想用TL货币消除产品。

<PRODUCTS>
 <PRODUCT ID="9563">
   <CODE><![CDATA[72127]]></CODE>
   <NAME><![CDATA[SAMPLE PRODUCT NAME]]></NAME>
   <PRICE><![CDATA[57.90]]></PRICE>
   <PRICE_DISCOUNT><![CDATA[48.50]]></PRICE_DISCOUNT>
   <CURRENCY>USD</CURRENCY>
 </PRODUCT>
 <PRODUCT ID="9564">
   <CODE><![CDATA[72128]]></CODE>
   <NAME><![CDATA[SAMPLE ANOTHER PRODUCT NAME ]]></NAME>
   <PRICE><![CDATA[67.90]]></PRICE>
   <PRICE_DISCOUNT><![CDATA[58.50]]></PRICE_DISCOUNT>
   <CURRENCY>TL</CURRENCY>
 </PRODUCT>
<PRODUCTS>

1 个答案:

答案 0 :(得分:0)

你需要以相反的方式思考问题 - 从身份转换开始(将输入复制到输出不变,你可以在其他问题中找到数百个这样的例子)和然后覆盖它以忽略您 想要保留的元素

<xsl:template match="PRODUCT[not(CURRENCY = 'USD')]" />