无法通过XSL访问XML中元素的值



我有一个XML文件,需要将其转换为其他XML。

XML文件使用名称空间,因此我将XSL文件中名称空间的定义包含到.中

出于某种原因,我无法解释,select的值不会返回任何值。

为了确保它与带有名称空间的元素的名称无关,我还在名称中带有dcterms的元素之间包含了en元素"id"。

为了方便起见,我提供了指向XML文件的链接,该文件具有对所用XSL文件的内联引用:http://inception.kbenp.net:7080/dev/72174_1.xml

更新:为了解决名称空间的所有问题,我将解析XML文件,然后用删除名称空间的样式表保存它们:http://inception.kbenp.net:7080/dev/removenamespaces.xsl

这样,我的其他样式表就可以简单得多。

您需要用这样的前缀声明名称空间:

xmlns:c="http://standaarden.overheid.nl/cvdr/terms/"

并使用xpath中的前缀"c"作为XML中的默认名称空间。这是上面的名称空间,所有元素都在它下面。

例如

<xsl:value-of select="c:cvdr/c:meta/c:owmskern/c:id"/>

我发现您在XSLT中的XPaths中缺少前缀。

最新更新