English 中文(简体)
DocBook XSL的超校对配对机
原标题:Overriding match="*" template from DocBook XSL
  • 时间:2009-10-12 18:46:17
  •  标签:

DocBook XSL包括一个与所有要素相符的模板。

<xsl:template match="*">
  <xsl:message> ....  </xsl:message>
</xsl:template>

我需要用另一个模板来推翻它,因为我的来源XML树含有更多的,即DoocBook XML。 如果在档案中注明这一模板,则该模板优先于DocBook XSL的所有模板。 似乎所有进口模板都按进口顺序排列,而NOT则根据该模板的具体程度排列。

<?xml version= 1.0 ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:db="http://docbook.org/ns/docbook" version="1.0">

  <xsl:import href="docbook-xsl-ns/xhtml/docbook.xsl" />
  <xsl:import href="页: 1"/>

  <xsl:template match="/">
    <xsl:apply-templates select="//db:book"/>
  </xsl:template>
</xsl:stylesheet>

页: 1

<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform>

  <xsl:template match="*">
    <xsl:element name="{local-name()}">
        <!-- go process attributes and children -->
        <xsl:apply-templates select="@*|node()" />
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>

6. Sample XML

<?xml version="1.0" encoding="UTF-8"?>
<root>
<http-host>localhost</http-host>
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"  xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:svg="http://www.w3.org/2000/svg" xmlns:m="http://www.w3.org/1998/Math/MathML" xml:id="course.528" xml:lang="en" version="5.0">
  <info>
   <title>Postoperative Complications</title>    
  </info>
  <chapter xml:id="chapter.1">
   <title>INTRODUCTION</title>
   <para>Postoperative complications are a constant threat to the millions  ....</para>
  </chapter>
</book>
<errors></errors>
</root>

对Xalan和xsltproc处理器都是如此。 我如何在不必改变DocBook XSL来源的情况下推翻这一模板。 我尝试了优先事项,但这不是事。

问题回答

根据我的理解,你只想将复印件xsl的模板用于非教材内容。 如欲在您的复印件中更加具体——在您的复印件中更为具体,该模板将为所有非教学内容选定。

页: 1

<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform>

  <xsl:template match="*[not(namespace-uri() =  http://docbook.org/ns/docbook )]">
    <xsl:element name="{local-name()}">
        <!-- go process attributes and children -->
        <xsl:apply-templates select="@*|node()" />
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>

视DocBooks在非木材节点的存在而定,你可能需要限制你在申请区部分申请的节点(以名称空间为基础),并且可能要紧靠申请项目流量,以确保其能够预测地处理。 希望对你们有所帮助。





相关问题
热门标签