无法转换XML <ns0:

时间:2017-09-05 09:02:49

标签: xml xslt

=“”

我要使用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>&#xa;</xsl:text>
        <xsl:apply-templates select="ns0:parameters"/>     
    </xsl:template>

    <xsl:template match="ns0:parameters">
        <xsl:apply-templates select="ns1:Get/info"/>
        <xsl:text>&#xa;</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:我的上一篇文章被标记为现有问题,但无法找到解决方案。

1 个答案:

答案 0 :(得分:2)

您之前的问题已作为问题Add additional namespace with XSLT的副本而被关闭。这确实包含答案,正如第一句话所说......

  

首先,您需要在样式表中声明各种名称空间......

所以,这只是意味着将ns0ns1的声明添加到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

的错误