フェデレーション結果 Web パーツの HTML レンダリングを有効にする
最終更新日: 2010年5月1日
適用対象: SharePoint Server 2010
この記事の内容
手順 1. HTML が表示から削除されないことを確認する
手順 2. 出力のエスケープを無効にする
手順 3 (オプション). 切り捨てを無効にする
既定では、フェデレーション検索結果 Web パーツの XSLT 変換は、セキュリティのために表示を HTML から削除します。ただし、信頼できる場所からの結果を表示するフェデレーション検索結果 Web パーツの HTML を含むフィールドは表示できます。そのためには、フェデレーション場所または Web パーツの XSL プロパティを次のように変更します。
HTML が表示から削除されないことを確認します。
出力キャッシュを無効にします。
切り捨てを無効にします (オプション)。
このトピックではこれらの変更について説明します。
注意
フェデレーション場所の XSL プロパティを更新した場合は、その場所の表示情報を使用するように Web パーツを構成する必要があります。
対応する場所の表示情報を使用するようにフェデレーション検索結果 Web パーツを構成するには
ブラウザーで、結果ページの URL に移動します (http:// ServerName/results.aspx など)。
[サイトの操作] リンク、[ページの編集] の順にクリックします。
変更するフェデレーション検索結果 Web パーツのインスタンスで、[編集] 矢印をクリックして [Web パーツ] メニューを表示し、[Web パーツの編集] をクリックします。
フェデレーション検索結果 Web パーツのツール ウィンドウで、[プロパティの表示] セクションを展開します。
[場所の表示形式を使用] を選択します。
[OK] をクリックして、フェデレーション検索結果 Web パーツのインスタンスを更新します。
手順 1. HTML が表示から削除されないことを確認する
HTML のレンダリングを有効にする前に、フェデレーション検索結果 Web パーツに返される XML と、XML を変換する XSLT の、両方の構造を理解しておく必要があります。フェデレーション場所または Web パーツの XSL プロパティの編集方法を学習するには、「[方法] 検索結果の XSLT 変換を表示して編集する」の説明に従ってください。フェデレーション場所によって返される検索結果 XML を表示する方法については、「[方法] 検索結果 XML データを表示する」を参照してください。
データを表示する XML ノードに HTML が含まれることを確認します。次に、XSLT が HTML を削除するためにその HTML がページに表示されないことを確認します。たとえば、GetPlainTextFromHtml テンプレートの内部にある次のタグが、RSS フィードの description フィールドから HTML タグを削除します。
<xsl:value-of select="srwrt:GetPlainTextFromHtml($Html)"/>
GetPlainTextFromHtml テンプレートを呼び出さないで $Html の値を出力するように <xsl:value-of> タグを変更します。
<xsl:value-of select="$Html"/>
注意
OpenSearch の場所に対する既定の XSLT は、OpenSearch RSS フィードの title、link、および description フィールドを表示します。この変更は、通常の RSS または ATOM フィードの description フィールドに対してのみ行います。タイトル表示のカスタマイズについては、「[方法] フェデレーション検索結果のタイトルとブランド アイコンをカスタマイズする」を参照してください。
この変更をフェデレーション場所またはフェデレーション検索結果 Web パーツに保存すると、HTML タグはエスケープされた文字としてページに表示されるようになります。たとえば、レンダリングされた HTML の代わりに山かっこ (<>) が表示されます。次の手順では、この動作を変更する方法について説明します。
手順 2. 出力のエスケープを無効にする
出力を表示する <xsl:value-of> タグを探します。たとえば、RSS または ATOM フィードの description フィールドからの HTML を表示するには、次のタグを探します。
<xsl:value-of select="$DescText"/>
disable-output-escaping 属性を追加します。
<xsl:value-of select="$DescText" disable-output-escaping="yes"/>
注意
disable-output-escaping 属性を追加すると、<xsl:value-of> タグは文字をエスケープしないで HTML を出力するようになります。その結果、書式が整っていない HTML が出力される場合があります。したがって、この属性は、注意して、信頼できるソースからの有効な HTML を表示するためにのみ使用する必要があります。
手順 3 (オプション). 切り捨てを無効にする
前の手順で編集したタグの $DescText 値は切り捨てられる値なので、タグが完了する前に description フィールドの HTML コードが切り捨てられる場合があります。そのようなことがあると、HTML は正しくレンダリングされません。
HTML が適切にレンダリングされるようにするには、タグの select 値を変更し、切り捨てられない値を使用するようにします。
<xsl:value-of select="$DescLongText" disable-output-escaping="yes"/>