我需要rdf:resource
从下面的 XML/RDF 中显示值。
<?xml version="1.0" encoding="UTF-8"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#">
<skos:Concept rdf:about="http://example.com/randomurl">
<skos:prefLabel xml:lang="en">example</skos:prefLabel>
<skos:broader rdf:resource="http://example.com/randomurl"/>
<skos:broader rdf:resource="http://example.com/randomurl"/>
<owl:sameAs rdf:resource="http://example.com/randomurl"/>
</skos:Concept>
</rdf:RDF>
我试过了,但找不到正确的路径。这可能是我忽略的非常小的和值得关注的东西。
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:skos="http://www.w3.org/2004/02/skos/core#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#">
<xsl:template match="/">
<html>
<body>
<h2><xsl:value-of select="//skos:prefLabel" /></h2>
<br />
<xsl:for-each select="//skos:broader">
Broader: <br />
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
它确实进入了 for-each 循环并显示了正确数量的节点skos:narrower
,但是当我尝试获取rdf:resource
with
<xsl:for-each select="//skos:broader">
Broader: <xsl:value-of select="@rdf:resource" /><br />
</xsl:for-each>
或选择的变体,它只是不起作用。我试图通过谷歌搜索和在 Stack Overflow 上搜索来找到解决方案,但没有找到解决方案。
那么我做错了什么?
编辑:产生以下错误:
警告:XSLTProcessor::transformToXml(): Undefined namespace prefix in [path] on line 57
警告:XSLTProcessor::transformToXml(): xmlXPathCompiledEval: 第 57 行 [path] 中的评估失败
警告:XSLTProcessor::transformToXml(): runtime error: file [path] line 25 element value-of in [path] on line 57
警告:XSLTProcessor::transformToXml():XPath 评估未返回任何结果。在