我要使用XSLT将xml文件转换为csv文件。
但是在这里,我遇到了ns0:,ns1:等等技术问题......
我是XSLT / XML的初学者
现在我的xsl与此类似:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://www.tibco.com/XSD/1.0"
xmlns:ns1="http://www.42site.com/ship/5.0">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:text>Day,Month,Year</xsl:text>
<xsl:text>
</xsl:text>
<xsl:apply-templates select="ns0:parameters"/>
</xsl:template>
<xsl:template match="ns0:parameters">
<xsl:apply-templates select="ns1:Get/info"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="info">
<xsl:value-of select="Day"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="Month"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="Year"/>
</xsl:template>
</xsl:stylesheet>
我将这个样式表用于这种xml:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:parameters xmlns:ns0="http://www.tibco.com/XSD/1.0">
<ns1:Get xmlns:ns1="http://www.42site.com/ship/5.0">
<info>
<Day>31</Day>
<Month>01</Month>
<Year>2000</Year>
</info>
</ns1:Get>
</ns0:parameters>
你可以想象,它不起作用,结果如下:
day,month,year
我希望如此:
day,month,year
31,01,2000
我现在有这个错误:
rulestest.xsl:2:97: The prefix "xsl" for element "xsl:stylesheet" is not bound.
谢谢,抱歉我的英语不好。
PS:我的上一篇文章被标记为现有问题,但无法找到解决方案。
答案 0 :(得分:2)
您之前的问题已作为问题Add additional namespace with XSLT的副本而被关闭。这确实包含答案,正如第一句话所说......
首先,您需要在样式表中声明各种名称空间......
所以,这只是意味着将ns0
和ns1
的声明添加到xsl:stylesheet
节点
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://www.tibco.com/XSD/1.0"
xmlns:ns1="http://www.42site.com/ship/5.0">
在http://xsltransform.net/ehVYZNy
中查看此操作请注意,使用当前的XSLT,您应该确实遇到Prefix must resolve to a namespace: ns0