这是XML文件的摘录。
<rdf:RDF>
<rdf:Description rdf:about="http://abc.org/JohnD">
<video:Movie xml:lang="en" xmlns:video="http://example.org/movie">Avatar</video:Movie>
</rdf:Description>
<rdf:Description rdf:about="http://abc.org/JohnD">
<foaf:interest xml:lang="en" xmlns:foaf="http://xmlns.com/foaf/0.1/">games</foaf:interest>
</rdf:Description>
</rdf:RDF>
XSL摘录
<xsl:template match="rdf:RDF/rdf:Description">
<xsl:value-of select="video:Movie"/>
</xsl:template>
我想从名为<video:Movie>
我尝试过使用<xsl:value-of select="video:Movie"/>
和其他各种组合,但它不会显示。我在XSL头中相应地声明了名称空间。
答案 0 :(得分:1)
以下代码选择元素而不管命名空间url:
<xsl:template match="rdf:RDF/rdf:Description">
<xsl:value-of select="*[name() = 'video:Movie']"/>
</xsl:template>
但是如果所有名称空间都是正确的,那么你提供的代码应该可行,我只是用下面的XSLT测试它(注意XSLT顶部的视频命名空间)。
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:video="http://example.org/movie"
>
<xsl:output method="html"/>
<xsl:template match="rdf:RDF/rdf:Description">
<xsl:apply-templates select="video:Movie"/>
</xsl:template>
</xsl:stylesheet>