2012-09-19 72 views
0

與此相似的問題:Fixed positioning with 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」屬性。

對於該任務,我將XPath表達式/strings/p/@ld作爲指向添加的模板的佈局框的常見子組中左屬性的值。但結果是佈局框位於左邊緣,表明StyleVision認爲它爲0(零)

我也試過這個表達式/strings/p/concat(@lp,'px'),因此它的計算結果爲'px'所附數字,因爲Design是在像素中設置的單位,但我得到同樣的結果 - XPath表達式求值0
小截圖:http://i.imgur.com/yPzzz.png

任何人都可以協助如何通過StyleVision使用XPath定位模板?

回答

0

看起來不是佈局框需要定位,而是佈局框內的內容,不管是什麼(取決於設計)。
在這種情況下,可以通過將通用定位樣式屬性設置爲XPath表達式來完成動態(和絕對)定位,如後面的示例所示(通過連接單元/strings/p/concat(@lp,'px'),因爲這是程序所期望的)。並且將「position」風格屬性設置爲「絕對」是非常重要的(這可能看起來像矯枉過正的需求,因爲我最初已經設置了我的設計處於「絕對定位模式」)

在能夠看到預期結果之後,我很快失望,這種風格定位僅適用於HTML輸出。其他輸出格式不尊重它,我很樂意被證明是錯誤的。

在現實中,經常不需要HTML輸出,但一些更靈活的格式。在這種情況下,我建議這個出色的工具:XHTML2RTF,它將XHTML轉換爲RTF,用於定位XHTML文件中的元素。進一步的RTF可以轉換爲任何常見的格式

作爲結論,對於我最初的問題,使用StyleVision是錯誤的方法。結果有限時,它會使事情變得複雜。對於來自XML源的絕對定位輸出,如果可能的話,我會建議使用腳本語言或簡單的XSLT,然後使用XHTML2RTF工具