1

XSLTとJavaを介してXMLファイルをHTML形式に変換する必要があります。タグの1つには、次のようなイントラネットページのリンクが含まれています。

http://mycompany.com&mypage=xyz&version=999

ここで、生成されたhtmlのhref属性でこの値を使用したいと思います。

この値を使用する前に、「amp;」を削除したいと思います。ユーザー名を追加するようにURLを変更します。

XSLT関数を介してそれを行うことはできますか、それともJavaコードで置き換える必要がありますか?

4

4 に答える 4

2

XSLT関数を介してそれを行うことはできますか、それともJavaコードで置き換える必要がありますか?

これはXSLTでは簡単です。

この変換

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:param name="pUserName" select="'someUser'"/>

 <xsl:template match="someLink">
     <a href="{substring-before(., '?')}/{$pUserName}">someLink</a>
 </xsl:template>
</xsl:stylesheet>

このXMLドキュメントに適用した場合

<someLink>http://mycompany.com?mypage='xyz'&amp;version='999'</someLink>

必要な正しい結果を生成します

<a href="http://mycompany.com/someUser">someLink</a>
于 2012-07-26T04:31:39.947 に答える
1

fn:replace(string,pattern,replace) と fn:concat(string,string,...) を試してください

指定されたパターンを置換引数で置換して作成された文字列を返します例: replace("Bella Italia", "l", " ") 結果: 'Be *a Ita*ia'

例: replace("Bella Italia", "l", "") 結果: 'Bea Itaia'

fn:concat(string,string,...) 文字列の連結を返します。 例: concat('XPath ','is ','FUN!') 結果: 'XPath is FUN!'

参照: http://www.w3schools.com/xpath/xpath_functions.asp

注: 置換機能は XSLT バージョン 2.0 でのみ使用でき、バージョン 1.0 では使用できないため、XSLT バージョン 2.0 を使用していることを確認してください。

于 2012-07-26T04:35:27.543 に答える
0

まず、指定されたリンクが機能していません。

http://mycompany.com?mypage=xyz&version=999。

単純に、xmlをjavaでhtmlに変換したいと思います。

そのためには、このディスカッションにアクセスしてください。 Javaベースのテンプレートエンジンの提案

これはテンプレートエンジンによって実行されます。Javaで広く使用されているテンプレートエンジンはFreemarkerとvelocityです。その他もご利用いただけます。

これがJavaテンプレートエンジンのリストです。 Javaテンプレートエンジン

于 2012-07-26T04:31:38.353 に答える
0

& の代わりに & 文字をそのまま URL に書きたい場合は、出力エスケープを無効にしてください。concat 関数を使用して、必要なものを URL に追加します。

<xsl:value-of select="$url" disable-output-escaping="yes"/>
于 2012-07-26T04:44:34.530 に答える