Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如果不是特定日期格式,如何拒绝xml记录_Date_Xslt - Fatal编程技术网

Date 如果不是特定日期格式,如何拒绝xml记录

Date 如果不是特定日期格式,如何拒绝xml记录,date,xslt,Date,Xslt,我有一个案例研究,如果xml记录不是格式的,我需要拒绝它 hh:mm:ss。任何人都可以帮助我如何使用xslt做到这一点 <Data> <rec> 12:32:56 </rec> <rec> 20141104093903 </rec> <Data> 因此它应该拒绝第二条记录……尝试以下样式表: <?xml version="1.0" encoding="UT

我有一个案例研究,如果xml记录不是格式的,我需要拒绝它 hh:mm:ss。任何人都可以帮助我如何使用xslt做到这一点

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

因此它应该拒绝第二条记录……

尝试以下样式表:

<?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>

下面是XPath表达式

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

将仅选择内容为hh:mm:ss格式的rec元素。它不会检查时间的值,它会很高兴地接受36:82:93的时间。

您使用的是XSLT 1.0还是2.0?-拒绝到底意味着什么?谢谢Joel M.Lamsen!!