0

この質問と同様: Altova Stylevision で位置を修正

しかし、XPath式で動的に配置したい。これは可能なはずですが、機能させることができません。

この XML サンプルがあります。

<?xml version="1.0" encoding="UTF-8"?>
<strings>
    <p lp="200">first string</p>
    <p lp="300">second string</p>
</strings>

デザインにユーザー定義のテンプレートからコンテンツを追加しまし/strings/pた。「lp」属性で配置する必要があります。

そのタスクのために/strings/p/@ld、追加されたテンプレートを指すレイアウト ボックスの共通サブグループの left 属性の値として XPath 式を追加します。しかし、その結果、レイアウト ボックスが左端に配置され、StyleVision がそれを 0 (ゼロ) と見なしていることを示唆しています。

デザインはピクセル単位で設定されているため、「px」で追加された数値に評価されるようにこの式も試しまし/strings/p/concat(@lp,'px')たが、同じ結果が得られます-XPath式は0に評価されます
。小さなスクリーンショット: http://i.imgur.com /yPzzz.png

XPath を使用して StyleVision にテンプレートを配置する方法を支援できる人はいますか?

4

1 に答える 1

0

配置する必要があるのはレイアウトボックスではなく、レイアウトボックス内のコンテンツであるようです(デザインによって異なります)。
その場合、動的 (および絶対) ポジショニングは、後の例のように共通のポジショニング スタイル属性を XPath 式に設定することによって実行できます (/strings/p/concat(@lp,'px')プログラムが期待するユニットの連結によって)。また、「位置」スタイル属性を「絶対」に設定することが重要です (最初にデザインが「絶対配置モード」に設定されているため、過剰な要求のように思えるかもしれません)。

期待どおりの結果が得られた後、この種のスタイル配置が HTML 出力に対してのみ有効であることにすぐに失望しました。他の出力形式はそれを尊重しません。間違っていることが証明されれば幸いです。

実際には、多くの場合、HTML は望ましい出力ではなく、より柔軟な形式です。このような状況では、 XHTML2RTF という優れたツールをお勧めします。これは、XHTML ファイル内の要素の配置に関して、XHTML を RTF に変換します。さらに、RTF は任意の一般的な形式に変換できます

結論として、私の最初の問題では、StyleVision の使用は間違ったアプローチでした。結果が限られている間、それは物事を複雑にしました。XML ソースからの絶対配置出力については、可能であればスクリプト言語または単純な XSLT を提案し、その後 XHTML2RTF ツールを使用することをお勧めします。

于 2012-09-23T12:21:16.863 に答える