希望する.xml
ファイルを生成するために、.ods
ファイル(zipのcontent.xml
ファイル)をXSLTで変換しようとしています。XSLTで特定の.ODSセルのコンテンツを取得する方法
XSLTは要素の固定位置を使用してコンテンツを取得しますが、.ods
ファイルでは空白のフィールドが多く、XSLTでカウントする方法はわかりません。
さらに、これらの空の(空の)セルが保存されているかどうかを調べるために、content.xml
でいくつかの実験を行いました。 content.xml
で
私のようなものを見つけました:
<table:table-column table:style-name="co1" table:number-columns-repeated="16384" table:default-cell-style-name="ce1"/>
<table:table-row table:number-rows-repeated="1048576" table:style-name="ro1">
は.ods
ファイル内の空のセルまたは値の実際の位置を表す(数学的計算で例えば)何らかの形でこれらの値はありますか?
あなたは
に.ods
例を、より明確なアイデアを持っているため、私はここに私のドキュメントを共有:
これは私のXSLTファイルです:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:espd="urn:com:grow:espd:02.00.00" xmlns:cac="urn:X-test:UBL:Pre-
award:CommonAggregate" xmlns:cbc="urn:X-test:UBL:Pre-award:CommonBasic"
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="office:spreadsheet/table:table">
<xsl:variable name="test" select="table:table-row/table:table-cell"/>
<p><xsl:value-of select="$test/text:p[1]"/></p>
</xsl:template>
、出力は次のとおりです。
ブラクburak5 burak6 burak2 burak3 burak4 burak7 burak9 burak8 burak10
質問:適用することによって、細胞からの単一の値を取得する方法
content.xml
の変換? content.xml
に変換を適用することにより、細胞からの単一の値を取得する方法:(どのように到達するためにちょうどD4
を細胞例えば?)
ありがとうございます!私を混乱させるものはほとんどありません。あなたは多くの情報を持った大きなファイルを持っていると想像してください。このアプローチは実現可能ですか?私が選択しなければならないのは、私が言及しなかったもう一つのことは、XSLT 2.0での変換が必要だということです。 – Sojimanatsu
@さとまなつ:はい。大きなファイルでも動作するはずです。したがって、100の固定位置は2つより良好に動作するはずです。それは遅くなりますが、おそらくそれほど遅くはありません。 BTWこのテンプレートはXSLT-2.0と3.0でも動作しますが、番号を変更するだけです;-)。 – zx485
@司丸:ありがとうございます。 – zx485