我正在尝试遍历 XML 数据以确定 XML 输入的子字符串是否包含在参数 TagIDs 中。这是输入的示例:
 <in:inputs xmlns:in="http://www.composite.net/ns/transformation/input/1.0">
<!-- Input Parameter, XPath /in:inputs/in:param[@name='TagTypeCode'] -->
<in:param name="TagTypeCode">USC_CATEGORY_tags</in:param>
<!-- Input Parameter, XPath /in:inputs/in:param[@name='keyword'] -->
<in:param name="keyword"/>
<!-- Input Parameter, XPath /in:inputs/in:param[@name='TagIDs'] -->
<in:param name="TagIDs">,2704,2764,</in:param>
<!-- Function Call Result (2 ms), XPath /in:inputs/in:result[@name='SolrSearchResults']/response -->
 <in:result name="SolrSearchResults">
     <response xmlns="">
         <lst name="responseHeader">
            <int name="status">0</int>
            <int name="QTime">1</int>
             <lst name="params">
                <str name="facet">true</str>
                <str name="start">0</str>
                <str name="q">*:* AND tagids:2704 AND tagids:2764</str>
                <str name="facet.field">USC_CATEGORY_tags</str>
                <str name="rows">0</str>
            </lst>
        </lst>
        <result name="response" numFound="0" start="0"/>
         <lst name="facet_counts">
            <lst name="facet_queries"/>
             <lst name="facet_fields">
                 <lst name="USC_CATEGORY_tags">
                    <int name="2703.Best Sellers">0</int>
                    <int name="2704.New Release">0</int>
                    <int name="2705.Training Products">0</int>
                    <int name="2706.AICP Exam Prep">0</int>
                    <int name="2707.PAS Reports">0</int>
                    <int name="2709.PAS Super Sale">0</int>
                    <int name="2722.Books Big Sale 2013">0</int>
                    <int name="2723.Books Big Sale 2013 - 20% Off">0</int>
                    <int name="2724.Books Big Sale 2013 - 50% Off">0</int>
                    <int name="2725.Books Big Sale 2013 - 80% Off">0</int>
                    <int name="2734.eBook Landing Page">0</int>
                    <int name="2736.eBook Landing Page">0</int>
                </lst>
            </lst>
            <lst name="facet_dates"/>
            <lst name="facet_ranges"/>
        </lst>
    </response>
</in:result>
是否可以遍历 /in:inputs/in:result[@name='SolrSearchResults']/response/lst[@name='facet_counts']/lst[@name='facet_fields']/lst/int 来确定如果任何@name 属性('.' 之前的子字符串)包含在 TagIDs 参数中,如果是,请将变量设置为某个值?什么是最有效的方法?
这是我尝试过的
<xsl:variable name="root" select="/in:inputs/in:result[@name='SolrSearchResults']/response" />
    <xsl:variable name="TagIDs" select="/in:inputs/in:param[@name='TagIDs']" />
    <xsl:variable name="facet_selected" select="0"/>
<xsl:for-each select="$root/lst[@name='facet_counts']/lst[@name='facet_fields']/lst/int">
            <xsl:if test="contains($TagIDs,concat(',',substring-before(@name,'.'),','))" >
                <xsl:variable name="facet_selected" select="1" />
            </xsl:if>
        </xsl:for-each>
如果您能指出我正确的方向,我将不胜感激!