读书人

xslt node-set的支持,该如何处理

发布时间: 2012-12-23 11:28:15 作者: rapoo

xslt node-set的支持
写一个例子学习node-set,但是总是不能走进node-set的for-each里面去,求解,代码如下:


<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns='http://www.plmxml.org/Schemas/PLMXMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:plm='http://www.plmxml.org/Schemas/PLMXMLSchema'
xmlns:msxml='urn:schemas-microsoft-com:xslt'
xmlns:msxsl='urn:schemas-microsoft-com:xslt'>

<xsl:template match='/'>
<xsl:variable name='releationship-ids'>
<releationship>1</releationship>
<releationship>2</releationship>
</xsl:variable>
<xsl:for-each select='msxsl:node-set($releationship-ids)/releationship'>
<xsl:copy-of select='.' />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>



[最优解释]
貌似是名称空间导致的,你可以设定名称空间、
<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns:A='http://www.plmxml.org/Schemas/PLMXMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:plm='http://www.plmxml.org/Schemas/PLMXMLSchema'
xmlns:msxml='urn:schemas-microsoft-com:xslt'
xmlns:msxsl='urn:schemas-microsoft-com:xslt'>

<xsl:template match='/'>
<xsl:variable name='releationship-ids'>
<A:releationship>1</A:releationship>
<A:releationship>2</A:releationship>
</xsl:variable>
<xsl:for-each select='msxsl:node-set($releationship-ids)/A:releationship'>
<xsl:copy-of select='.' />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

[其他解释]
或者删除掉你原来的
xmlns='http://www.plmxml.org/Schemas/PLMXMLSchema'

不改也可以
[其他解释]
引用:
或者删除掉你原来的
xmlns='http://www.plmxml.org/Schemas/PLMXMLSchema'

不改也可以


就是名字空间的问题,十分感谢啊。
另外,因为刚学xslt,所以还有一个问题,因为这个帖子已经结贴了,所以另起一个帖子,这位老兄如果你会的话还请帮忙看看啊,谢谢咯。

读书人网 >XML SOAP

热点推荐