Xslt 检查节点是否存在的XSL条件
我想检查我的XML中是否存在类型属性包含stringXslt 检查节点是否存在的XSL条件,xslt,types,contain,Xslt,Types,Contain,我想检查我的XML中是否存在类型属性包含stringtype\u attachment\u的节点 这是正确的检查方法吗 <xsl:if test="count(*[contains(@Type, 'type_attachment_')]) > 0"> something </xsl:if> 某物 我不知道这个节点是如何嵌套的。例如,它可以简单到: <?xml version="1.0"?> <?xml-stylesheet ty
type\u attachment\u
的节点
这是正确的检查方法吗
<xsl:if test="count(*[contains(@Type, 'type_attachment_')]) > 0">
something
</xsl:if>
某物
我不知道这个节点是如何嵌套的。例如,它可以简单到:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<hello-world>
<greeter>
<dsdsds>An XSLT Programmer
<greeting type = 'type_attachment_'>Hello, World!
</greeting>
</dsdsds>
</greeter>
</hello-world>
XSLT程序员
你好,世界!
但也可以包含嵌套在其他不同元素中的此节点。查找示例:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:param name="filt">
<filters>
<ritem type="type_attachment_" relateditemnumber="8901037"/>
<ritem relateditemnumber="8901038"/>
<ritem type="type_attachment_" relateditemnumber="8901039"/>
<ritem relateditemnumber="8901040"/>
</filters>
</xsl:param>
<xsl:template match="/">
<xsl:for-each select="$filt/filters/ritem[@type='type_attachment_']">
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
输出:
<ritem type="type_attachment_" relateditemnumber="8901037"/>
<ritem type="type_attachment_" relateditemnumber="8901039"/>
找出一个例子:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:param name="filt">
<filters>
<ritem type="type_attachment_" relateditemnumber="8901037"/>
<ritem relateditemnumber="8901038"/>
<ritem type="type_attachment_" relateditemnumber="8901039"/>
<ritem relateditemnumber="8901040"/>
</filters>
</xsl:param>
<xsl:template match="/">
<xsl:for-each select="$filt/filters/ritem[@type='type_attachment_']">
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
输出:
<ritem type="type_attachment_" relateditemnumber="8901037"/>
<ritem type="type_attachment_" relateditemnumber="8901039"/>
匹配现有节点的表达式是真实的。不匹配任何节点的表达式都是错误的 因此,不需要计算返回的节点集。只需测试一下是否有匹配的东西
<xsl:if test="*[contains(@Type, 'type_attachment')]">
something
</xsl:if>
某物
匹配现有节点的表达式是真实的。不匹配任何节点的表达式都是错误的
因此,不需要计算返回的节点集。只需测试一下是否有匹配的东西
<xsl:if test="*[contains(@Type, 'type_attachment')]">
something
</xsl:if>
某物
请您澄清一下您的问题好吗?是的,这是可能的。您能发布一个xml示例吗?我澄清了我的问题。请使用
您能澄清您的问题吗?是的,这是可能的。您能发布一个xml示例吗?我稍微澄清了我的问题。使用