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

时间:2014-08-27 11:36:54

标签: xml xslt namespaces

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

XML文件使用命名空间,因此我将我的XSL文件中的那些定义包括在内。

由于某些原因我无法解释,选择的值没有给出任何价值。

只是为了确保它与具有命名空间的元素的名称无关我还在元素之间包含en元素“id”:在名称中包含dc。:

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

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

这样我的其他样式表可以更加简单。

1 个答案:

答案 0 :(得分:0)

您需要使用如下前缀声明命名空间:

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

并使用前缀" c"在xpath中,因为XML中的默认命名空间是上面的命名空间,所有元素都属于它。

如,

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

我发现你在XSLT的XPath中缺少前缀。