Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何在DocBook中获得特定于节的标题作为输出_Xml_Xslt_Xslt 1.0_Docbook_Docbook Xsl - Fatal编程技术网

Xml 如何在DocBook中获得特定于节的标题作为输出

Xml 如何在DocBook中获得特定于节的标题作为输出,xml,xslt,xslt-1.0,docbook,docbook-xsl,Xml,Xslt,Xslt 1.0,Docbook,Docbook Xsl,我正在尝试使用以下语法为DocBook设置特定于章节的标题: <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> <book> <title>My Guide to Bowling</title> <chapter>

我正在尝试使用以下语法为DocBook设置特定于章节的标题:

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book>
    <title>My Guide to Bowling</title>
    <chapter>
         <section header="section header">
            <title>Buying the right clothes</title>
            <para>I want to buy some shoes</para>
        </section>
    </chapter>
</book>

我的保龄球指南
买合适的衣服
我想买双鞋
然后,在我的XSL中,我将进行以下定制以设置正确的标题:

<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">

<xsl:import href="/docbook-xsl-1.79.1/fo/docbook.xsl"/>

<xsl:template name="header.content">
        <xsl:param name="pageclass"/>
        <xsl:param name="position" select="''"/>
    <fo:block>
                <xsl:choose><xsl:when test="$pageclass = 'body'">
                        <xsl:choose><xsl:when test="$position = 'center'">
                                        <xsl:value-of select="ancestor-or-self::*[@header]/@header"/>
                        </xsl:when></xsl:choose>
                </xsl:when></xsl:choose>
    </fo:block>
</xsl:template>

</xsl:stylesheet>

这适用于章节,但不适用于章节。 如何使其适用于当前页面的各个部分?

试试这个

<xsl:value-of select="ancestor-or-self::*[@header][1]/@header"/>


如果您使用整个XML和整个XSL文件编辑您的问题,将更容易获得帮助。@O.F.我刚刚添加了完整版本的代码。谢谢您的回答。它适用于章节,但不适用于章节。@nischayn22,请分享完整的输入,以便我们分析。另外,您通过param
pageclass
传递的值是多少,这些值是通过fo传递的。请参阅docbook.sourceforge.net/release/xsl/1.77.0/doc/fo/是否有相关帮助?谢谢。@nischayn22为此,您必须显示您的实际输入,以便我们检查。