XSL msxsl: node -set problem

Please help me guys. I'm just trying to declare a simple fragment of a result tree and iterate over it.


...

<xsl:variable name="rtf">
  <item-list>
    <item id="1">one</item>
    <item id="2">two</item>
    <item id="3">three</item>
    <item id="4">four</item>
  </item-list>
</xsl:variable>

<xsl:for-each select="msxsl:node-set($rtf)/item-list/item">
  <xsl:value-of select="@id"/>
</xsl:for-each>

...


Am I completely mistaken in how this works?


Edit: I am using .NET XslCompiledTransform and have the correct msxsl namespace declarations - xmlns: msxsl = "urn: schemas-microsoft-com: xslt"

The conversion is doing fine - the problem is that nothing is output

+5
source share
3 answers

, , . < item-list > <item> . , , XPath 1.0, .

, - :

<xsl:stylesheet xmlns="http://example.com"...>

:

<xsl:stylesheet xmlns="http://example.com" xmlns:x="http://example.com"...>

"x" XPath:

<xsl:for-each select="msxsl:node-set($rtf)/x:item-list/x:item">
  <xsl:value-of select="@id"/>
</xsl:for-each>

, . .

+8

MSXSL, XslCompiledTransform node-set() , - EXSLT :

<xsl:stylesheet xmlns:exslt="http://exslt.org/common">
  ...
  <xsl:for-each select="exslt:node-set($rtf)/item-list/item">
  ...
</xsl:stylesheet>
+4

.

msxsl ? - :

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">

, Microsoft XSLT

+1
source

All Articles