Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法通过XSL访问XML中元素的值_Xml_Xslt_Namespaces - Fatal编程技术网

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

无法通过XSL访问XML中元素的值,xml,xslt,namespaces,Xml,Xslt,Namespaces,我有一个XML文件,需要将其转换为其他XML XML文件利用了名称空间,因此我在XSL文件中包含了名称空间的定义,以供参考 由于某种原因,我无法解释,选择的值不会返回任何值 为了确保它与具有名称空间的元素的名称无关,我还将en element id包含在名称中带有dcterms:的元素之间 为了方便起见,我提供了指向XML文件的链接,其中包含对所用XSL文件的内联引用: 更新: 为了解决名称空间的所有问题,我将解析XML文件,然后使用删除名称空间的样式表保存它们: 这样,我的另一个样式表就可

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

XML文件利用了名称空间,因此我在XSL文件中包含了名称空间的定义,以供参考

由于某种原因,我无法解释,选择的值不会返回任何值

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

为了方便起见,我提供了指向XML文件的链接,其中包含对所用XSL文件的内联引用:

更新:
为了解决名称空间的所有问题,我将解析XML文件,然后使用删除名称空间的样式表保存它们:


这样,我的另一个样式表就可以简单得多。

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

xmlns:c="http://standaarden.overheid.nl/cvdr/terms/"
并在XPath中使用前缀c作为XML中的默认名称空间,即上面的名称空间,所有元素都在它下面

e、 g


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

在FireFox with Firebug中,您可以看到我在XSL中定义的XML结构存在,但缺少值。请将您的XML以及XSLT和预期结果发布在此处。您好,谢谢您的回答。问题是,我们以文件的形式获取XML,因此使用XML文档中的名称空间声明,不使用xmlns:c=和xmlns=。那么,应该如何创建XSL,以便能够检索您在当前XSL中可以找到的元素的值呢?为了解决名称空间的所有问题,我将解析XML文件,然后使用删除名称空间的样式表保存它们:这样,我的其他样式表就可以简单得多。但是谢谢你的回答。这让我走上了正确的道路。是的,你可以从你的XML中删除名称空间,但是,你这样做是在做更多的工作。通常,我们更改XSL以获得预期的输出,而不是更改输入XML以使其与现有XSL一起工作。
<xsl:value-of select="c:cvdr/c:meta/c:owmskern/c:id"/>