我試圖從一個屬性轉換我編碼的base64 HTML內容,並將其放置在使用XLST的HTML內容中,希望有人可以提供幫助。如何將base64字符串解碼爲XSLT中的HTML內容?
我有這個字符串:
<p><b>Hello!</b><span>This is a span</span></p>
這是base64編碼值:
PHA+PGI+SGVsbG8hPC9iPjxzcGFuPlRoaXMgaXMgYSBzcGFuPC9zcGFuPjwvcD4=
的XML數據是這樣的:
<Data Get="True">
<Result TextFlow="PHA+PGI+SGVsbG8hPC9iPjxzcGFuPlRoaXMgaXMgYSBzcGFuPC9zcGFuPjwvcD4=">
</Result>
</Data>
我最後一次嘗試使用this:
fn:cast($XML/Data/Result/@TextFlow,'xs:base64Binary','xs:String',false())
That code send this error:
Unknown function - Name and number or arguments do not match any function signature in the static context.
感謝您的幫助!
Base64轉換不是我通常會推薦在XSLT中執行的操作;字符構建不是XSLT會做得很好的事情。我建議你調用一個擴展函數來完成這個轉換。不幸的是,半標準EXSLT擴展集不包含該操作,因此您可能必須自己查找或編寫它,然後使用XSLT處理器的API來註冊函數,以便樣式表可以調用它。 – keshlam
你當然可以用純XSLT編寫它,雖然它會相當複雜,即使你至少知道字節流的編碼始終是UTF-8(從基礎64獲取一個字符串實際上是從基礎64獲得一個字節流,然後從中獲取一個字符串,第二步取決於編碼)。 –