Xml xslt对每个不起作用的
xmlXml xslt对每个不起作用的,xml,xslt,Xml,Xslt,xml 010088202501033821100011946933 010088202501033821100015310495 010088202501033821100018139350 010088202501033821100012121992 010088202501033821100016483276 010088202501033821100012414042 010088202501033821100011320392 0100882025010338211000161028
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=“”的相对选择表达式