2014-06-18 34 views
1

我有一個案例研究,我需要拒絕xml記錄,如果它不是格式 hh:mm:ss。可以any1幫助我如何使用xslt來做到這一點。如何拒絕特定日期格式的xml記錄

<Data> 
    <rec> 
     12:32:56 
    </rec> 
    <rec> 
     20141104093903 
    </rec> 
<Data> 

所以應該拒絕第二個記錄....

+0

您使用的是XSLT 1.0還是2.0? - 「拒絕」究竟意味着什麼? –

回答

0

嘗試以下樣式:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="1.0"> 

    <xsl:strip-space elements="*"/> 

    <xsl:output indent="yes" omit-xml-declaration="yes"/> 

    <xsl:template match="/"> 
     <Data> 
      <xsl:apply-templates select="Data/rec[contains(., ':')]"/> 
     </Data> 
    </xsl:template> 

    <xsl:template match="rec"> 
     <xsl:copy> 
      <xsl:apply-templates/> 
     </xsl:copy> 
    </xsl:template> 

</xsl:stylesheet> 

當應用到我們的輸入XML,它產生

<Data> 
    <rec> 
     12:32:56 
    </rec> 
</Data> 
+0

感謝Joel M. Lamsen! – rohit31dec91

0

以下XPath表達式

rec[normalize-space(translate(., '1234567890', '##########'))='##:##:##'] 

將僅選擇rec元素,其內容爲hh:mm:ss格式。它不檢查的時間,它會高興地接受36:82:93的「時間」。

相關問題