【问题标题】:Docbook, Images, ANT文档、图像、ANT
【发布时间】:2009-10-16 13:51:40
【问题描述】:

我正在尝试通过 XSLT 将 DocBook XML - 文件转换为 HTML。 XML - 文件包含一个图像,这就是我收到以下错误的原因:

build-html:
     [xslt] Transforming into C:\dev\DocBook\DocBookmitXML\output
     [xslt] Processing C:\dev\DocBook\DocBookmitXML\src\BurndownChart.jpg to C:\dev\DocBook\DocBookmitXML\output\BurndownChart.html
     [xslt] Loading stylesheet C:\dev\DocBook\DocBookmitXML\docbook-xsl-1.75.1\xhtml\docbook.xsl
     [xslt] : Fatal Error! org.apache.xerces.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence. Cause: org.apache.xerces.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
     [xslt] Failed to process null

DocBook 文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article SYSTEM "../docbook-xml-4/docbookx.dtd" >
<article>
    <articleinfo>
        <title>Freitags um 11.30 Uhr</title>
        <author>
            <firstname>me, myself </firstname>
            <surname>and I</surname>
        </author>
    </articleinfo>
    <sect1 label="1.0"> 
        <title>An introduction to DocBook</title>
        <para>this is text</para>
    </sect1>
    <sect1 label="2.0">
        <title>Core Docbook</title>
        <para>
            <table frame='all'>
                <title>Testtabelle</title>
                <tgroup cols="3">
                    <thead>
                        <row>
                            <entry>Monat</entry>
                            <entry>Woche</entry>
                            <entry>Besucher</entry>
                        </row>
                    </thead>
                    <tbody>
                        <row>
                            <entry>Mai</entry>
                            <entry>1</entry>
                            <entry>4711</entry>
                        </row>
                        <row>
                            <entry>Mai</entry>
                            <entry>2</entry>
                            <entry>4712</entry>
                        </row>
                        <row>
                            <entry>Mai</entry>
                            <entry>3</entry>
                            <entry>4713</entry>
                        </row>
                        <row>
                            <entry>Gesamt</entry>
                            <entry></entry>
                            <entry>47110</entry>
                        </row>
                    </tbody>
                </tgroup>
            </table>
        now to the difficult stuff... 
        </para>
    </sect1>
    <sect1 label="2.0">
        <title>A Picture</title> 

            <mediaobject>
                <imageobject>
                    <imagedata format="JPEG" fileref="BurndownChart.jpeg" />
                </imageobject>
            </mediaobject>

    </sect1>
</article>

构建文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="docbook-src" default="build-html">
    <property name="docbook.xsl.dir" value="./docbook-xsl-1.75.1/xhtml" />
    <property name="doc.dir" value="output" />
    <property name="src" value="src" />
    <property name="html.stylesheet" value="${docbook.xsl.dir}/docbook.xsl" />
    <property name="xalan.lib.dir" value="./xalan-j_2_7_1"/>

    <path id="xalan.classpath">
        <fileset dir="${xalan.lib.dir}" id="xalan.fileset">
            <include name="xalan.jar" />
            <include name="xercesImpl.jar" />
        </fileset>
    </path>

    <target name="clean" description="Cleans up the generated files">
        <delete dir="${doc.dir}" />
    </target>

    <target name="depends">
        <mkdir dir="${doc.dir}" />
    </target>

    <target name="build-html" depends="clean,depends" description="Generates HTML files from DocBook">
    <xslt basedir="src" destdir="${doc.dir}" style="${html.stylesheet}" extension=".html">
            <classpath refid="xalan.classpath" />
        </xslt>
    </target>
</project>

我应该在哪里查找错误?

【问题讨论】:

  • hmmm...一半的 DocBookfile 无法识别
  • hmmm....你验证过那个 DocBook XML 文件吗?也许其中有错误?第二个想法:处理简单文件时如何涉及编码?只是一些想法......
  • XML 文件验证无误。一切都很好......直到我添加了 mediaObjekt

标签: xml ant xerces docbook


【解决方案1】:

如果您仔细查看错误消息,您会注意到它实际上是在尝试处理 JPEG 文件,这当然会失败。默认情况下,当以这种方式调用时,xslt 任务将尝试转换它在指定目录中找到的所有文件。您可以添加类似includes="*.xml" 的属性来告诉它只处理*.xml 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 2013-04-17
    • 2022-06-15
    • 2020-06-28
    • 2012-04-13
    • 1970-01-01
    相关资源
    最近更新 更多