次の方法で共有


フェデレーション結果 Web パーツの HTML レンダリングを有効にする

最終更新日: 2010年5月1日

適用対象: SharePoint Server 2010

この記事の内容
手順 1. HTML が表示から削除されないことを確認する
手順 2. 出力のエスケープを無効にする
手順 3 (オプション). 切り捨てを無効にする

既定では、フェデレーション検索結果 Web パーツの XSLT 変換は、セキュリティのために表示を HTML から削除します。ただし、信頼できる場所からの結果を表示するフェデレーション検索結果 Web パーツの HTML を含むフィールドは表示できます。そのためには、フェデレーション場所または Web パーツの XSL プロパティを次のように変更します。

  • HTML が表示から削除されないことを確認します。

  • 出力キャッシュを無効にします。

  • 切り捨てを無効にします (オプション)。

このトピックではこれらの変更について説明します。

注意

フェデレーション場所の XSL プロパティを更新した場合は、その場所の表示情報を使用するように Web パーツを構成する必要があります。

対応する場所の表示情報を使用するようにフェデレーション検索結果 Web パーツを構成するには

  1. ブラウザーで、結果ページの URL に移動します (http:// ServerName/results.aspx など)。

  2. [サイトの操作] リンク、[ページの編集] の順にクリックします。

  3. 変更するフェデレーション検索結果 Web パーツのインスタンスで、[編集] 矢印をクリックして [Web パーツ] メニューを表示し、[Web パーツの編集] をクリックします。

  4. フェデレーション検索結果 Web パーツのツール ウィンドウで、[プロパティの表示] セクションを展開します。

  5. [場所の表示形式を使用] を選択します。

  6. [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"/>

関連項目

その他の技術情報

出力 XML スタイル シート変換におけるエスケープする方法: 無効にします。

<xsl:value-of> Element