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> 

“选择”属性中的表达式尝试选择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 回答