输入:
<list list-type="simple" specific-use="front">
<list-item><p>Preface <xref rid="b-9781783084944-FM-001" ref-type="sec">00</xref></p></list-item>
<list-item><p>Series Title <xref rid="b-9781783084944-FM-003" ref-type="sec">00</xref></p></list-item>
<list-item><p>Dedication</p></list-item>
<list-item><p>Acknowledgments <xref rid="b-9781783084944-FM-005" ref-type="sec">00</xref></p></list-item>
<list-item><p>Contributors <xref rid="b-9781783084944-FM-006" ref-type="sec">00</xref></p></list-item>
<list-item><p>Glossary <xref rid="b-9781783084944-FM-008" ref-type="sec">00</xref></p></list-item>
</list>
我需要输出低于
<div class="pagebreak" id="b-9781783084944-FM-002">
<h2 class="PET"><a href="#tocb-9781783084944-FM-002">CONTENTS</a></h2>
<div class="TocPrelims"><a href="#b-9781783084944-FM-001">Preface</a></div>
<div class="TocPrelims"><a href="#b-9781783084944-FM-002">Series Title</a> </div>
</div>
我的xslt:
<xsl:template match="list[@specific-use='front'][@list-type='simple']/list-item/p">
<div class="TocPrelims">
<a>
<xsl:attribute name="href">
<xsl:text>#toc</xsl:text>
<xsl:copy-of select="//list[@specific-use='front'][@list-type='simple']/list-item/p/xref[@rid]"/>
</xsl:attribute>
<xsl:apply-templates/>
</a>
</div>
</xsl:template>
以上编码不正确..请给出建议。
答案 0 :(得分:1)
这行有问题:
<xsl:copy-of select="//list[@specific-use='front'][@list-type='simple']/list-item/p/xref[@rid]"/>
首先,条件会选择所有xref
个元素,但您只需要找到当前p
个元素。其次,如果xref
元素具有rid
属性,则会选择rid
元素,但实际上您要选择xsl:value-of
属性。您还真的想在这里使用<xsl:value-of select="xref/@rid"/>
<xsl:template match="list[@specific-use='front'][@list-type='simple']/list-item/p">
<div class="TocPrelims">
<a>
<xsl:attribute name="href">
<xsl:text>#toc</xsl:text>
<xsl:value-of select="xref/@rid"/>
</xsl:attribute>
<xsl:value-of select="text()[1]" />
</a>
</div>
</xsl:template>
请尝试使用此模板:
<xsl:template match="list[@specific-use='front'][@list-type='simple']/list-item/p">
<div class="TocPrelims">
<a href="#toc{xref/@rid}">
<xsl:value-of select="text()[1]" />
</a>
</div>
</xsl:template>
实际上,您可以使用属性值模板将其简化为:
... + geom_errorbarh(aes(xmin = LowInner,
xmax = HighInner), height = 0.5, lwd = 1, position = position_dodgev(height = 0.8))