[FIX] 表示形式-関数を使用する XSLT スタイル シートを使用して XSLT 変換を実行しようとする System.Xml.Xsl.XsltException 例外が発生します。

文書翻訳 文書翻訳
文書番号: 832757 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

表示形式- 関数を使用する拡張スタイルシート言語変換 (XSLT) スタイル シートを作成します。 Microsoft Visual Studio .NET では正の数値を文字列に変換しようとするこのスタイル シートを使用する XSLT 変換を実行すると、System.Xml.Xsl.XsltException 例外に発生します。 この問題を解決するには、ダウンロードして、修正プログラムをインストールします。 修正プログラムを入手するには、マイクロソフト製品サポートに連絡します。

現象

拡張スタイルシート言語を作成できます 表示形式- 関数を使用する変換 (XSLT) スタイル シート。 Microsoft Visual Studio .NET では、正の数値を文字列に変換するこのスタイル シートを使用して XSLT 変換を実行しようとすると、次のエラー メッセージが表示されます。
型 'System.Xml.Xsl.XsltException' の未処理の例外が system.xml.dll で発生しました
内部例外および例外メッセージを表示する例外を処理する、次のような出力が表示されます。
System.ArgumentException: NumberGroupSizes
パラメーター名: 値配列内のすべての要素を 1 から 9、ゼロになることができます最後要素、以外の間でなければなりません。
System.Globalization.NumberFormatInfo.CheckGroupSize (文字列型 (String propName、Int32 [groupSize) に
(二重値、文字列型 (String formatPattern、formatName の文字列型 (String) の System.Xml.Xsl.XsltCompileContext.FormatNumber で
System.Xml.Xsl.FuncFormatNumber.Invoke (XsltContext xsltContext、オブジェクトの [args、XPathNavigator docContext) に
System.Xml.XPath.XsltFunction.InvokeFunction (XPathNavigator qy、XPathNodeIterator の反復子) に

関数 'format-number()' が失敗しました。

解決方法

サポートされている修正プログラムしますです、はのみことを目的としていますこの資料に記載されている問題を解決します。 修正プログラムは、問題が発生したシステムにのみ適用してください。 この修正プログラム テストを受ける可能性があります。 そのため場合この問題で深刻な影響を受けていないお勧めしますこの修正プログラムを含む次の Service Pack まで待つことです。

この問題を解決するには、Microsoft Product Support Services にお問い合わせのうえ、修正プログラムを入手してください。 Microsoft Product Support Services の電話番号一覧およびサポート料金については、次のマイクロソフト Web サイトを参照してください:
http://support.microsoft.com/contactus/?ws=support
メモ 特殊な場合は、Microsoft Support 担当者により、特定の更新は問題が解決される場合料金がサポート通常発生する可能性があります取り消されます。 通常のサポート料金が追加の質問および問題の特定のアップデートの対象とならない問題について適用されます。この修正プログラムがファイル属性 (またはそれ以降) 次の表は、されている可能性もします。 これらのファイルの日時に協定時刻 (UTC) 記載します。 各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。 UTC および現地時間の時差を確認するには、コントロール パネル]、日付と時刻ツールの [ タイム ゾーン ] タブを使用してください。
   Date         Time   Version            Size    File name
   --------------------------------------------------------------
   03-Dec-2003  19:43  1.1.4322.978    1,339,392  System.xml.dll

状況

マイクロソフトとして認識していますこの問題を記載されているいるマイクロソフト製品の問題。

詳細

動作を再現する手順

  1. コンソール アプリケーション プロジェクトを作成します。

    1. Microsoft Visual Studio .NET 2003年を開始します。
    2. [ ファイル ] メニューの [ 新規作成 ] をポイントし、[ プロジェクト ] をクリックします。
    3. [ プロジェクトの種類 ] で [ Visual C# プロジェクト ] をクリックし、 コンソール アプリケーション [ テンプレート ] ボックスの一覧の [。
    4. [ 名前 ] ボックスに、 FormatNumConsole を入力します。
    5. [ OK] をクリックします。 既定では、 Class1.cs コード ウィンドウが開きます。
  2. 表示形式-関数を使用する XSLT スタイル シートを作成します。

    1. ソリューション エクスプローラーで、 FormatNumConsole を右クリックして 追加 ] をポイントし、[ 新しい項目の追加 ] をクリックします。 [ 新しい項目の追加 - FormatNumConsole ] ダイアログ ボックスが表示されます。
    2. [ カテゴリ ] の下 ローカル プロジェクト アイテム ] をクリックします。
    3. [ テンプレート ] の下クリックして XSLT ファイル
    4. [] ボックスに、 形式 number.xslt を入力し、[ ファイルを開く しています。 形式 number.xslt コード ウィンドウが開きます。
    5. 置換の XML データのプレゼンテーションのテンプレートを作成するコードの次の XML で既存の XML コード:
      <?xml version="1.0" encoding="UTF-8"?>
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
          <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
          <xsl:template match="/">
              <table>
                  <xsl:apply-templates />
              </table>
          </xsl:template>
          <xsl:template match="number">
              <tr><td><xsl:value-of select="format-number(.,'#,##0;(#,##0)')"/></td></tr>
          </xsl:template>
      </xsl:stylesheet>
  3. XML データを提供する XML ファイルを作成します。

    1. ソリューション エクスプローラーで、 FormatNumConsole を右クリックして 追加 ] をポイントし、[ 新しい項目の追加 ] をクリックします。 [ 新しい項目の追加 - FormatNumConsole ] ダイアログ ボックスが表示されます。
    2. [ テンプレート ] の下クリックして XML ファイル
    3. [] ボックスに、 形式 number.xml を入力し、[ ファイルを開く しています。 形式 number.xml コード ウィンドウが開きます。
    4. XML データを提供するためのコードを次の XML で既存の XML コード置換:
      <?xml version="1.0" encoding="UTF-8"?>
      <root>
          <number>1000</number>
      </root>
  4. XSLT スタイル シートと、XML ファイルを使用して XSLT 変換を実行します。

    1. Class1.cs コード ウィンドウに切り替えます。
    2. 既存のコードを XSLT スタイル シートを使用して XML データを変換する XslTransform クラスを使用する次のコードに置き換えます。

      メモ 次のコードでは、適切なファイル パスで使用の XPathDocument コンストラクターや、 xsltProcessor.Load メソッドに対する呼び出しを:
      using System;
      using System.Xml;
      using System.Xml.XPath;
      using System.Xml.Xsl;
      using System.IO;
      using System.Text;
      
      namespace FormatNumConsole
      {
          class Class1
          {
              [STAThread]
              static void Main(string[] args)
              {
                  try
                  {
                      StringBuilder sb = new StringBuilder();
                      StringWriter sw = new StringWriter(sb);
      
                      // Load the XML data that you want to transform.
                      XPathDocument xmlDoc = new XPathDocument("C:\\FormatNumConsole\\format-number.xml");
      
                      // Load the XSLT style sheet that uses the format-number function.
                      XslTransform xsltProcessor = new XslTransform();
                      xsltProcessor.Load("C:\\FormatNumConsole\\format-number.xslt");
      
                      // Transform the XML data, and then send the output to the console.
                      xsltProcessor.Transform(xmlDoc,null,sw,null);
                  }
                  catch(Exception ex)
                  {
                      // Display the inner exception and the exception message.
                      Console.WriteLine(ex.InnerException.ToString());
                      Console.WriteLine();
                      Console.WriteLine(ex.Message);
                      Console.ReadLine();
                  }
              }
          }
      }
    3. アプリケーションをビルドして、アプリケーション実行します。 コンソール ウィンドウの「現象」に記載されている出力が表示されます。

関連情報

詳細については、クリック、次資料、記事の「サポート技術情報」(Microsoft Knowledge Base) を表示: して
824684マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明
307494Visual C# .NET を使用してストリーミング用、XSL 変換を XML に適用する方法
詳細については、次のマイクロソフトの開発者用ネットワーク (MSDN) の Web サイトを参照してください。
XsltException クラス
http://msdn2.microsoft.com/en-us/library/system.xml.xsl.xsltexception(vs.71).aspx
表示形式-関数
http://msdn2.microsoft.com/en-us/library/ws343esk.aspx
XslTransform クラス
http://msdn2.microsoft.com/en-us/library/system.xml.xsl.xsltransform(vs.71).aspx

プロパティ

文書番号: 832757 - 最終更新日: 2007年5月21日 - リビジョン: 2.4
この資料は以下の製品について記述したものです。
  • Microsoft .NET Framework 1.1
キーワード:?
kberrmsg kbbug kbfix kbqfe kbformat kbxml kbsample kbstyle kbcode kbhotfixserver kbmt KB832757 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:832757
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com