1

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 ループに入り、 を持つノードの正しい量を表示しますが、 withskos:narrowerを取得しようとするrdf:resource

<xsl:for-each select="//skos:broader">
    Broader: <xsl:value-of select="@rdf:resource" /><br />
</xsl:for-each> 

または選択のバリエーション、それは機能しません。ここでスタックオーバーフローをグーグルで検索して解決策を見つけようとしましたが、見つけることができませんでした。

それで、私は何を間違っていますか?

編集:次のエラーが生成されます:

警告: XSLTProcessor::transformToXml(): 57 行目の [パス] に未定義の名前空間プレフィックスがあります

警告: XSLTProcessor::transformToXml(): xmlXPathCompiledEval: 57 行目の [パス] で評価が失敗しました

警告: XSLTProcessor::transformToXml(): 実行時エラー: ファイル [パス] 行 25 要素値 - [パス] の行 57

警告: XSLTProcessor::transformToXml(): XPath 評価が結果を返しませんでした。の

4

3 に答える 3

1

rdfXSLT で名前空間を宣言していないために機能していない可能性がありますか? この XSLT の場合:

<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#"
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

  <xsl:template match="/">
    <html>
      <body>
        <h2>
          <xsl:value-of select="//skos:prefLabel" />
        </h2>
        <br />
        <xsl:for-each select="//skos:broader">
          <xsl:text>Broader: </xsl:text>
          <xsl:value-of select="@rdf:resource"/>
          <br />
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

サンプル入力で実行すると、結果は次のようになります。

<html 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#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <body>
    <h2>example</h2><br>
    Broader: http://example.com/randomurl<br>
    Broader: http://example.com/randomurl<br>
  </body>
</html>
于 2013-03-22T10:50:31.537 に答える
0

一言: RDF/XML を処理するときの一般的なルールは、「XML ツールを使用しないことです!」です。専用の RDF ツールではなく XSLT を使用しなければならない理由はありますか? XSLT で使用する RDF ドキュメントが常に同じ構造であると確信できますか?

RDF API を使用して RDF/XML ドキュメントを解析するとします。次に、それを RDF/XML に再シリアライズします。結果は次のようになります。

<?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:Description rdf:about="http://example.com/randomurl"/>
    </skos:broader>
    <skos:broader>
        <rdf:Description rdf:about="http://example.com/randomurl"/>
    </skos:broader>
    <owl:sameAs>
        <rdf:Description rdf:about="http://example.com/randomurl"/>
    </owl:sameAs>

</skos:Concept>
</rdf:RDF>

XSLT はもう機能しません (基本的には同じデータですが)。

于 2013-03-23T07:51:05.867 に答える
0

XSLT で、RDF 名前空間をインポートするのを忘れていました。xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"XSLTに追加するだけです。それはうまくいくはずです。

于 2013-03-22T11:12:46.593 に答える