首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询msxsl:节点集的结果不起作用。

查询msxsl:节点集的结果不起作用。
EN

Stack Overflow用户
提问于 2017-01-03 13:45:14
回答 2查看 371关注 0票数 0

我使用node-set内置函数将xsl变量转换为节点集,如下所示

代码语言:javascript
复制
<xsl:variable name="allotmentValuesNodeSet" select="msxsl:node-set($allotmentValues)"/>

命令<xsl:copy-of select="$allotmentValuesNodeSet"/>产生以下输出:

代码语言:javascript
复制
<values>  
        <month>Mar</month>
        <incomeQTD>1499.63109246680</incomeQTD>
        <realizedQTD />
        <incomeYTD>1519.35773710483</incomeYTD>
        <realizedYTD />
        <incomePrevYTD>1519.35773710483</incomePrevYTD>
        <realizedPrevYTD />

        <month />
        <incomeQTD />
        <realizedQTD />
        <incomeYTD />
        <realizedYTD />
        <incomePrevYTD />
        <realizedPrevYTD />

 </values>

当我试图使用这个xsl命令<xsl:value-of select="count($allotmentValuesNodeSet/values/month)"/>查询节点集变量时,我总是得到0,尽管结果应该是2

allotmentValues变量包含在其他外部xml节点之间。如果我没有将它包含在任何xml节点之间,那么代码将按预期的方式工作。

是否存在明显的级联(例如,名称空间相关?)为什么查询xsl节点集可能会中断?

如果需要的话,我将尝试拿出一个简单的例子来说明我的问题(我不能准确地发布问题的代码片段,因为它是专有代码)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-03 13:55:35

使用例如<xsl:variable name="allotmentValues" xmlns="">...</xsl:variable>修复变量创建,并且可能使用无前缀路径<xsl:value-of select="count($allotmentValuesNodeSet/values/month)"/>工作。

票数 1
EN

Stack Overflow用户

发布于 2017-01-03 13:55:13

我已经从这个question中找到了在我的情况下工作的解决方案。

对这一问题和解决办法的简要说明:

  • 如果我们从其中派生节点集的<xsl:variable/>包含在带有默认命名空间的xml块中,它将继承该命名空间。
  • 因此,要正确地执行XPath查询,可以在节点前面加上默认名称空间的名称,例如count($allotmentValuesNodeSet/inheritedNS:values/inheritedNSmonth)而不是count($allotmentValuesNodeSet/values/month)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41444932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档