2

標準ではODTファイルの2つのバージョンが定義されていることを知っています。1つは異なるファイルのアーカイブ、つまりmeta.xml、content.xmlなどです。2つ目はすべてのデータを含む1つの大きなXMLファイルです。(上記のhttp://en.wikipedia.org/wiki/OpenDocument_technical_specification#Document_Representationから知っています)

後者のバージョンは処理に適していますが、残念ながらOpenOfficeでは作成されていません。

質問は次のとおりです。アーカイブバージョンのODTファイルを単一のXMLファイルに変換するのに役立つフィルター、コンバーター、または何かを知っていますか?最適なのはJavaクラスです。

4

2 に答える 2

5

OpenOfficeとLibreOfficeはどちらも、「1つの大きなXML」形式でODTファイルを生成できます。それらは「フラットODT」ファイルと呼ばれます。

ODTファイルを開き、「名前を付けて保存…」を使用します。そこから、ファイル形式を「フラットODT」に変更できます。

于 2011-09-28T23:21:59.207 に答える
0

私は、ODTソースファイルを標準と「多かれ少なかれ」互換性のある1つのXMLファイルに変換するXSLTスタイルシートを作成することでこの問題を解決しました。以下はコードです。

<?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0">

        <xsl:param name="meta.file" select="'meta.xml'" /> 

        <xsl:template match="@*|node()">
            <xsl:copy>
                <xsl:apply-templates select="@*|node()" />
            </xsl:copy>
        </xsl:template>

        <xsl:template match="office:document-content">
            <office:document>
                <xsl:copy-of select="@*" />
                <xsl:variable name="meta" select="document($meta.file)/office:document-meta/office:meta" />
                <xsl:copy-of select="$meta" />
                <xsl:apply-templates />
            </office:document>
        </xsl:template>

    </xsl:stylesheet>
于 2012-09-13T20:39:31.107 に答える