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