如何在转换中使用xml csv-parser包? (命名空间给出无效的obj ref)

问题描述 投票:1回答:1

我需要将CSV转换为XML。

我想用xslt一步完成。

我非常感兴趣地阅读了W3C csv-parser package。该文档显示了一个示例,该示例声明了

的命名空间
xmlns:csv="http://example.com/csv"

在文档顶部,然后继续说它将使用csv-parser包

 <xsl:use-package name="http://example.com/csv-parser" 
                package-version="*"/>

在Netbeans(8.2)IDE中,当我制作给自己的示例副本以将csv转换为呈现时,在(IE 11.1006)浏览器中生成的输出页面指出:“非静态Java函数的第一个参数' parse'不是有效的对象引用。“

[当我查找上面提供的URL时,我只看到页面标题,没有软件包。我是不是该?浏览器从何处加载软件包?

我认为错误消息是说程序包引用错误。我不了解W3C(w3.org)文档吗?他们只是在建议界面指南吗?他们不提供实施吗?

为了方便起见,这是上面的超链接提供的代码的副本:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:csv="http://example.com/csv"
   exclude-result-prefixes="xs csv"
   version="3.0">

   <xsl:output indent="yes"/>

   <xsl:use-package name="http://example.com/csv-parser" 
                    package-version="*"/>

   <!-- example input "file"  -->
   <xsl:variable name="input" as="xs:string">
       name,id,postal code
       "Abel Braaksma",34291,1210 KA
       "Anders Berglund",473892,9843 ZD
   </xsl:variable>

   <!-- entry point -->
   <xsl:template name="xsl:initial-template">
       <xsl:copy-of select="csv:parse($input)"/>
   </xsl:template>

</xsl:stylesheet>```

xml csv xslt xml-parsing w3c
1个回答
0
投票

如何为XSLT处理器提供软件包位置是特定于处理器的,对于Saxon 9,可以从命令行使用-lib选项提供要使用的软件包的文件名,也可以使用具有以下名称的配置文件:足够的部分,例如直接从XSLT 3测试套件的GitHub存储库中加载程序包]

<configuration edition="HE" xmlns="http://saxon.sf.net/ns/configuration">
     <xsltPackages>
          <package name="http://example.com/csv-parser" version="1.0"
               sourceLocation="https://github.com/w3c/xslt30-test/raw/master/tests/decl/package/package-100.xsl"
          />
     </xsltPackages>
</configuration>

因此,您基本上需要确保将要使用的软件包(即,在规范中找到的源代码)安全存放在本地文件中,然后可以使用[C0从命令行运行Saxon 9.8或更高版本]选项,或者您为配置文件提供-it -xsl:your-xslt-code.xsl -lib:package-file.xsl

-config:config.xml,您可以以不同的方式查看它的运行情况,Saxon 9在XQuery代码中运行XPath 3.1 https://xqueryfiddle.liberty-development.net/94hwphT函数以运行某些XSLT的代码。 W3C测试套件GitHub存储库中的软件包源代码。

© www.soinside.com 2019 - 2024. All rights reserved.