3

この質問はとても恥ずかしいと思いますが、解決策が見つからないので、助けていただければ幸いです。

これは私のコードxmlです:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="C:/Program%20Files/XML%20Copy%20Editor/esercizi%20xml/prova2.xsl"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader>
    <fileDesc>
        <titleStmt>
            <title></title>
        </titleStmt>
        <publicationStmt><p>AA</p></publicationStmt>
        <sourceDesc><p>AA</p></sourceDesc>
    </fileDesc>
</teiHeader>
    <text>
    <body><div>
    <head>Titolo</head>
        <p>Scriver&#242; un <rs>nome</rs> di luogo come questo:  <rs key="Persia" type="luogo">Persia</rs>.</p>
    </div></body>
    </text>
</TEI>

これが私のファイルxslに書いたものです。

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0">  
    <xsl:template match="/">  
        <back>
            <div>
               <xsl:value-of select="//rs"/>
            </div>
        </back>     
    </xsl:template>
</xsl:stylesheet>

出力は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<back xmlns="http://www.w3.org/1999/xhtml" xmlns:tei="http://www.tei-c.org/ns/1.0">
  <div/>
</back>

エラーがどこにあるのかわかりません。名前空間にあると思いますが、解決策が見つかりません。

アドバイスありがとうございます!

4

1 に答える 1

0
        <div> 
           <xsl:value-of select="//rs"/> 
        </div> 

「select」属性の式は、「rs名前空間なし」にある要素を選択しようとしますが、そのような要素はありません。何も選択されません。

あなたが実際に欲しい

        <div> 
           <xsl:value-of select="//tei:rs"/> 
        </div> 

ただし、XSLT 1.0 では、最初に選択されたrs要素のみが出力されます。

それらすべてが必要な場合は、次のようなものを使用します

        <div> 
          <xsl:for-each select="//tei:rs">
           <p><xsl:value-of select="."/></p>
          </xsl:for-each> 
        </div> 
于 2012-09-02T17:57:41.993 に答える