我对这个问题感到很惭愧,但我找不到解决办法,希望你能帮助我。
这是我的代码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ò 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>
我不明白我的错误在哪里;我想它在namespace,但我找不到解决方案。
谢谢你的建议!
答案 0 :(得分:0)
<div>
<xsl:value-of select="//rs"/>
</div>
“select”属性中的表达式尝试选择“no namespace”中的任何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>