Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
Xml xslt对每个不起作用的_Xml_Xslt - Fatal编程技术网

Xml xslt对每个不起作用的

Xml xslt对每个不起作用的,xml,xslt,Xml,Xslt,xml 010088202501033821100011946933 010088202501033821100015310495 010088202501033821100018139350 010088202501033821100012121992 010088202501033821100016483276 010088202501033821100012414042 010088202501033821100011320392 0100882025010338211000161028

xml


010088202501033821100011946933
010088202501033821100015310495
010088202501033821100018139350
010088202501033821100012121992
010088202501033821100016483276
010088202501033821100012414042
010088202501033821100011320392
010088202501033821100016102891
010088202501033821100013578725
010088202501033821100018119185
xslt


电视连续剧
有效的
无效
序列号不应为空。

我尝试转换转换,但我努力转换,但没有任何错误,转换对其他xml标记正常工作,但输出xml中未显示的序列

如果每个的
处理
cmn:Serial
元素,则内部路径需要是相对的,以便选择内部的每个元素,而不是
只需要
而不是
test=“SerialNumbers/cmn:Serial!=”
您只需要
test=“.!=”“

如果每个
处理
cmn:Serial
元素,那么内部的路径需要是相对的,因此要选择内部的每个元素而不是
,您只需要
而不是
test=“SerialNumbers/cmn:Serial!=”
您只需要
test=“.!=”“

对于每个select表达式,您需要在需要选择的节点列表中选择一个完全限定的表达式,或者使用通配符选项选择任意深度的all,如下所示。 这应该适合您:

    <xsl:for-each select="cmn:Serial">
    <fieldvalidation>
                <validtedfield>Serial</validtedfield>
                <value><xsl:value-of select="SerialNumbers/cmn:Serial"/></value>
        <xsl:choose>
            <xsl:when test="SerialNumbers/cmn:Serial != ''">    
                <status>Valid</status>
                <reason></reason>
            </xsl:when>
            <xsl:otherwise> 
                <status>Not Valid</status>
                <reason>Serial should not be empty.</reason>
            </xsl:otherwise>
        </xsl:choose>
    </fieldvalidation>
</xsl:for-each>

for each select表达式需要在需要选择的节点列表中使用完全限定的表达式,或者使用通配符选项在任何深度级别选择all,如下所示。 这应该适合您:

    <xsl:for-each select="cmn:Serial">
    <fieldvalidation>
                <validtedfield>Serial</validtedfield>
                <value><xsl:value-of select="SerialNumbers/cmn:Serial"/></value>
        <xsl:choose>
            <xsl:when test="SerialNumbers/cmn:Serial != ''">    
                <status>Valid</status>
                <reason></reason>
            </xsl:when>
            <xsl:otherwise> 
                <status>Not Valid</status>
                <reason>Serial should not be empty.</reason>
            </xsl:otherwise>
        </xsl:choose>
    </fieldvalidation>
</xsl:for-each>

嗨,我终于得到了正确的答案

xsl:for-each select="//cmn:Serial"

电视连续剧
有效的
无效
序列号不应为空。

在循环内部,必须这样设置才能获得所有的feild值。如果您这样设置,您将得到所有字段的值,该值等于第一个字段的值

嗨,最后我得到了正确的答案

xsl:for-each select="//cmn:Serial"

电视连续剧
有效的
无效
序列号不应为空。

在循环内部,必须这样设置才能获得所有的feild值。如果这样设置,您将获得所有字段的值,该值等于第一个字段的值

您的源XML不包含名称空间的声明,因此它无效。能否更新XML,使其完整有效?此外,XSLT也没有名称空间-如果看不到完整的XML/XSLT,就很难知道问题出在哪里。源XML不包含名称空间的声明,因此它是无效的。能否更新XML,使其完整有效?此外,您的XSLT也没有名称空间-如果看不到完整的XML/XSLT,很难知道问题所在。然后编辑您的问题,并显示所有名称空间的最小但完整的代码示例,否则,正如Matt Jones在评论中所说,不可能判断出哪里出了问题。然后编辑您的问题并显示所有名称空间的最小但完整的代码示例,否则,正如Matt Jones在评论中所说,不可能判断出哪里出了问题。您好,xsl:for each select=“//cmn:Serial”它工作意味着它进入循环并获取序列号字段,该字段等于循环中的字段数,但问题是所有序列字段都从循环中的第一个序列元素获取值,请使用类似select=“”的相对select表达式。“Hi,xsl:for each select=“//cmn:serial”它工作意味着它进入循环并获取序列号字段,该字段等于循环中的字段数,但问题是所有序列字段都从循环中的第一个序列元素获取值,请使用类似select=“”的相对选择表达式