Xslt 如何使用XSL基于字符串值获取xml节点?
我有一个字符串变量,它有多个节点引用号,用逗号分隔,例如:test#u variable=#id1、#id147、#id168 现在,我需要获取上面字符串变量的引用号在变量中匹配的所有xml节点 因此,我只显示那些符合上述条件的节点的数据 我搞不懂怎么翻出来,请帮忙Xslt 如何使用XSL基于字符串值获取xml节点?,xslt,xslt-1.0,Xslt,Xslt 1.0,我有一个字符串变量,它有多个节点引用号,用逗号分隔,例如:test#u variable=#id1、#id147、#id168 现在,我需要获取上面字符串变量的引用号在变量中匹配的所有xml节点 因此,我只显示那些符合上述条件的节点的数据 我搞不懂怎么翻出来,请帮忙 <xsl:variable name="test_variable" select="substring-after($vMinMaxVar,'|')"/> <xsl:message><xsl:text
<xsl:variable name="test_variable" select="substring-after($vMinMaxVar,'|')"/>
<xsl:message><xsl:text>PrintingTesting_Variable:-</xsl:text><xsl:value-of select="$test_variable"/></xsl:message>
PrintingTesting_变量:-
所以如果我打印上面这行。我会有一个价值,即。
PrintingTesting_变量:-#id1、#id147、#id168(此输出可以是单值输出,也可以是带逗号的多值输出)
现在我需要回到xml,只过滤xml节点,它的标记中只有这些引用号
供参考的Xml内容示例:-
考虑以下示例: XML(格式正确!!!)
XSLT1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="http://www.sample.org/Schemas/xyzwSchema"
exclude-result-prefixes="ns">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="references">#id1,#id147,#id168</xsl:param>
<xsl:template match="/ns:Sample">
<xsl:copy>
<xsl:copy-of select="ns:Process[contains(concat($references, ','), concat(@instancedRef, ','))]"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
#id1、#id147、#id168
结果
<?xml version="1.0" encoding="UTF-8"?>
<Sample xmlns="http://www.sample.org/Schemas/xyzwSchema">
<Process id="id234" instancedRef="#id1">
<UserData id="id41"/>
<UserValue title="Mfg0allocated_time" type="real" value="23.4"/>
</Process>
<Process id="id236" instancedRef="#id147">
<UserData id="id43"/>
<UserValue title="Mfg0allocated_time" type="real" value="23.4"/>
</Process>
<Process id="id237" instancedRef="#id168">
<UserData id="id44"/>
<UserValue title="Mfg0allocated_time" type="real" value="23.4"/>
</Process>
</Sample>
您真的只限于XSLT 1吗?如果是的话,您到底使用哪个XSLT1处理器?它是否支持一个扩展函数来标记您的字符串,比如?您的XML缺少UserData
的结束标记“我希望一个变量包含所有这些FilterRD节点的输出。”没有这样的事情。处理结束时,变量不再存在。输出必须是一个文档(XML、HTML或文本)。嗨,Micheal,非常感谢你的建议,它真的对我有用。
<?xml version="1.0" encoding="UTF-8"?>
<Sample xmlns="http://www.sample.org/Schemas/xyzwSchema">
<Process id="id234" instancedRef="#id1">
<UserData id="id41"/>
<UserValue title="Mfg0allocated_time" type="real" value="23.4"/>
</Process>
<Process id="id236" instancedRef="#id147">
<UserData id="id43"/>
<UserValue title="Mfg0allocated_time" type="real" value="23.4"/>
</Process>
<Process id="id237" instancedRef="#id168">
<UserData id="id44"/>
<UserValue title="Mfg0allocated_time" type="real" value="23.4"/>
</Process>
</Sample>