Xml 使用xpath获取所有本地名称的节点集
使用XPath 1.0,而不是Xml 使用xpath获取所有本地名称的节点集,xml,xslt,xpath,Xml,Xslt,Xpath,使用XPath 1.0,而不是 <xsl:for-each select="*"> <xsl:variable name="varName" select="local-name()" /> <!-- Do stuff with $varName --> </xsl:for-each> 我真的很想做像这样的事情 <xsl:for-each select="*/local-name()"> <!-- Do stuf
<xsl:for-each select="*">
<xsl:variable name="varName" select="local-name()" />
<!-- Do stuff with $varName -->
</xsl:for-each>
我真的很想做像这样的事情
<xsl:for-each select="*/local-name()">
<!-- Do stuff with . ('.' as in the current value) -->
</xsl:for-each>
或
有什么方法可以做到这一点吗?节点集包含节点。它不包含名称。因此,你的问题包含了矛盾,证明这是不可能的
XPath2.0数据模型使得将名称集合作为值进行管理成为可能。但是XPath 1.0只允许节点集、单例字符串、布尔值和数字。谢谢,我不知道名称!=节点,我认为名称只是另一个属性,但我想情况并非如此。那么,可以将字符串转换为节点集吗?(如果这是一个新问题,只需说出这个词)Happy先生,在XSLT2.0中使用
,您将处理一系列字符串(带有元素名),因此中的
将是每个的原子字符串值。但这在XSLT1.0中是不可能的。我不知道你在问什么“是否可以将字符串转换为节点集”,这与你当前的问题有什么关系?@Martin Honnen,我想可能有一些ConvertToNode()
函数可以用来将字符串序列转换为节点序列,这样我仍然可以解决我的问题。。。但现在我想起来了,这意味着将存在一个假设函数ConvertToNode
wich,它将有一系列字符串作为参数,而在XPath 1.0中首先不存在wich。有点像第二十二条军规,所以不可能。那我得另找一条路了。谢谢你的时间。我想这里面少了一些东西。在所有这些xsl:for each
中,问题不仅仅是XPath 1.0不允许原子值序列,就像XPath 2.0一样(尽管它在该任务的要求中):另一个问题是它也不允许对原子值进行迭代。请注意,即使允许对原子值序列进行迭代,XSLT2.0也不允许匹配原子值。添加到:模式的内容可以匹配任何类型的项:原子值、函数项以及节点
<xsl:for-each select="local-name(*)">
<!-- Do stuff with . ('.' as in the current value) -->
</xsl:for-each>