Parse epub v3 TOC.xhtml



我想用xslt解析epub v3文件的TOC.xhtml。到目前为止,在我的xsl文件中有以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns="http://www.w3.org/1999/xhtml"
        xmlns:epub="http://www.idpf.org/2007/ops">
    <xsl:template match="/">
        <div id="tocItems">      
            <xsl:apply-templates select="/epub:html/epub:body/epub:nav/epub:ol/epub:li" />
        </div> 
    </xsl:template>
    <xsl:template match="epub:li">
        <br />
        hello
        <button class="option" onclick="parent.loadHREF(this)">                     
            <xsl:attribute name="id">
                <xsl:value-of select="epub:a/@href" />
            </xsl:attribute>
            <xsl:attribute name="name">
                <xsl:value-of select='position()' />
            </xsl:attribute>
            <xsl:value-of select="epub:a" />
        </button>
    </xsl:template>
</xsl:stylesheet>

不幸的是,这没有给出任何输出。这是一个典型的TOC.xhtml文件,希望有人能帮助。

 <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="tableofcontentsV3.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
  <head>
    <meta http-equiv="default-style" content="text/html; charset=utf-8"/>
    <title>Contents</title>
    <link rel="stylesheet" href="css/famouspaintings.css" type="text/css"/>
  </head>
  <body>
<nav epub:type="toc"><h2>Contents</h2>
  <ol epub:type="list"><li><a href="s001-Cover-01.xhtml">Cover</a></li>
<li><a href="s002-BookTitlePage-01.xhtml">Famous Paintings</a></li>
<li><a href="s003-Copyright-01.xhtml">Copyright</a></li>
<li><a href="s004-Section-001.xhtml">Explore</a></li>
<li><a href="s005-Section-002.xhtml">Famous Paintings</a></li>
<li><a href="s018-Section-009.xhtml">Colophon</a></li>
</ol></nav></body>
</html>

您尝试匹配的元素不在epub名称空间中;它们位于XHTML名称空间中。尝试在xsl:stylesheet中为xhtml名称空间添加前缀,并更改路径中的前缀:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
    xmlns:epub="http://www.idpf.org/2007/ops">
    <xsl:template match="/">
        <div id="tocItems">      
            <xsl:apply-templates select="/xhtml:html/xhtml:body/xhtml:nav/xhtml:ol/xhtml:li" />
        </div> 
    </xsl:template>
    <xsl:template match="xhtml:li">
        <br />
        hello
        <button class="option" onclick="parent.loadHREF(this)">                     
            <xsl:attribute name="id">
                <xsl:value-of select="xhtml:a/@href" />
            </xsl:attribute>
            <xsl:attribute name="name">
                <xsl:value-of select='position()' />
            </xsl:attribute>
            <xsl:value-of select="xhtml:a" />
        </button>
    </xsl:template>
</xsl:stylesheet>

相关内容

  • 没有找到相关文章

最新更新