嗨,我是一个新的蜜蜂xml/xslt。有人可以帮助我在下面的要求 我有多个同名的标签如何迭代检查每个标记值的多个标记
<SO_ServiceType>XXXX</SO_ServiceType>
<SO_ServiceType>YYYY</SO_ServiceType>
<SO_ServiceType>ZZZZ</SO_ServiceType>
如何遍历和检查每个标签的价值
嗨,我是一个新的蜜蜂xml/xslt。有人可以帮助我在下面的要求 我有多个同名的标签如何迭代检查每个标记值的多个标记
<SO_ServiceType>XXXX</SO_ServiceType>
<SO_ServiceType>YYYY</SO_ServiceType>
<SO_ServiceType>ZZZZ</SO_ServiceType>
如何遍历和检查每个标签的价值
该解决方案“迭代”在每个节点SO_ServiceType ...
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="SO_ServiceType">
<xsl:if test="text()='ZZZZ'">
<sample>ZZZZ is the value</sample>
</xsl:if>
<node>
<xsl:value-of select="."/>
</node>
</xsl:template>
结果
<node>XXXX</node>
<node>YYYY</node>
<sample>ZZZZ is the value</sample>
<node>ZZZZ</node>
编辑
如果你只是想在结果树输出“真”,如果文本()匹配A-70-00
,你可以这样做:
<xsl:template match="SO_ServiceType">
<xsl:if test="text()='A-70-00'">true</xsl:if>
</xsl:template>
记住,XSLT是把输入的方式输出。在XSLT中,描述了需要应用哪些规则才能获得所需的输出结果。试着想想你想要在输入节点上发生什么,而不是想要如何产生输出。
根据您对rene's answer的评论判断,您可能根本不需要“重复”。当XPath表达式中的一个或另一个(或两个)节点集具有相等比较时,如果该集合中的节点的任何与该值匹配,则整个表达式成功。因此
<xsl:if test="/Data/SO_Service_Type = 'A-70-00'">true</xsl:if>
将产生true
如果任何SO_Service_Type
元素具有值A-70-00
- 无for-each
必需的。
嗨雷内,感谢您的快速回复。我试图调用一个模板,如果发现某个值,应该在遍历标记后返回一些值。我正在尝试下面的代码块,但是获取语法错误 ='A-70-00'”> 的xsl:for-each>的 XSL:模板> –
shaiksha
一旦期望值发现我想停止迭代,并提出循环 – shaiksha
的出来这不是如何XLST工程.. .. – rene