Düzeltme: format-number işlevini kullanan XSLT stil sayfasını kullanarak XSLT dönüşümü gerçekleştirmeye çalıştığınızda BIR System.XML.xsl.XsltException özel durumu oluşuyor

Makale çevirileri Makale çevirileri
Makale numarası: 832757 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Format-number işlevini kullanan bir Genişletilebilir Stil Sayfası Dil Dönüşümü (XSLT) stil sayfası oluşturur. Microsoft Visual Studio. NET'te, pozitif sayılar, dizeleri, dönüştürmek için bu stil sayfası'nı kullanan XSLT dönüşümü gerçekleştirdiğiniz bir System.XML.xsl.XsltException özel durumu oluşur. Bu sorunu gidermek için <a0></a0>, karşıdan yüklemek ve bir düzeltme yükleyin. Düzeltmeyi edinmek üzere Microsoft Ürün Destek Hizmetleri'ne başvurun.

Belirtiler

Oluşturabileceğiniz bir Genişletilebilir Stil Sayfası Dili Dönüşümü (XSLT) stil sayfası, format-number işlevini kullanan. Microsoft Visual Studio. NET'te, pozitif sayılar, dizeleri, dönüştürmek için bu stil sayfasını kullanarak XSLT dönüşümü gerçekleştirmeye çalıştığınızda aşağıdaki hata iletisini alırsınız:
Içinde system.xml.dll 'System.Xml.Xsl.XsltException' türünde işlenmeyen bir özel durum oluştu
Iç özel duruma ve özel durum iletisi görüntülemek için özel durum işleme aşağıdaki çıktıyı alırsınız:
System.ArgumentException: NumberGroupSizes
Parametre adı: değer dizisindeki her öğe, bir ile dokuz, sıfır olabilen son öğe haricinde arasında olmalıdır.
System.Globalization.NumberFormatInfo.CheckGroupSize (string propName, ınt32 [] groupSize)
System.Xml.Xsl.XsltCompileContext.FormatNumber (iki kez değer dize formatPattern, dize formatName)
System.Xml.Xsl.FuncFormatNumber.Invoke (XsltContext xsltContext Object [] args, XPathNavigator docContext)
System.Xml.XPath.XsltFunction.InvokeFunction (XPathNavigator qy, XPathNodeIterator Yineleyici)

'Format-number()' işlevi başarısız oldu.

Çözüm

Desteklenen bir düzeltme Microsoft'tan edinilebilir, ancak yalnızca bu makalede anlatılan sorunu düzeltmesi amaçlanmıştır. Düzeltmeyi yalnızca bu sorunla karşılaşan sistemlere uygulayın. Bu düzeltmeye ek sınama uygulanabilir. Bu nedenle, sorundan ciddi olarak etkilenmiyorsanız, bu düzeltmeyi içeren bir sonraki hizmet paketini beklemeniz önerilir.

Bu sorunu hemen çözmek için, düzeltmeyi edinmek üzere Microsoft Ürün Destek Hizmetleri'ne başvurun. Microsoft Ürün Destek Hizmetleri'nin telefon numaralarının tam listesi ve destek ücretleriyle ilgili bilgi için, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=support
Not Özel durumlarda, Microsoft Destek Uzmanı özel bir güncelleştirmenin sorununuzu çözümleyeceğini belirlerse, destek aramaları için normalde uygulanan ücretler iptal edilebilir. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.Bu düzeltmenin ingilizce sürümü dosya öznitelikleri (veya daha yenisi) aşağıdaki tabloda listelenir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki Tarih ve Saat aracında saat dilimi sekmesini kullanın.
   Date         Time   Version            Size    File name
   --------------------------------------------------------------
   03-Dec-2003  19:43  1.1.4322.978    1,339,392  System.xml.dll

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

  1. Bir konsol uygulaması) projesi oluşturun.

    1. Microsoft Visual Studio .NET 2003 başlatın.
    2. Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
    3. Altında Project Types, Visual C# Projects ' ı tıklatın ve şablonları altında Console Application ' ı tıklatın.
    4. Ad kutusuna FormatNumConsole yazın.
    5. Tamam ' ı tıklatın. Varsayılan olarak, Class1.cs kod penceresi açılır.
  2. Format-number işlevini kullanan XSLT stil sayfası oluşturur

    1. Solution Explorer'da (Çözüm Gezgini), FormatNumConsole sağ tıklatın, sonra da Ekle işaret ve sonra Yeni Öğe Ekle'yi tıklatın. <a0>Add New ıtem - FormatNumConsole</a0> iletişim kutusu görüntülenir.
    2. Kategoriler altında Yerel proje öğelerini tıklatın.
    3. Şablonları altında tıklatın XSLT dosyası.
    4. Adı kutusuna, biçimi number.xslt yazın ve sonra ' ı tıklatın. Biçim number.xslt kod penceresi açılır.
    5. Varolan XML kodunu aşağıdaki XML kodu XML verilerinin sunumu için bir şablon oluşturmak için Değiştir:
      <?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 verilerini sağlayan bir XML dosyası oluşturma

    1. Solution Explorer'da (Çözüm Gezgini), FormatNumConsole sağ tıklatın, sonra da Ekle işaret ve sonra Yeni Öğe Ekle'yi tıklatın. <a0>Add New ıtem - FormatNumConsole</a0> iletişim kutusu görüntülenir.
    2. Şablonları altında tıklatın XML dosyası.
    3. Adı kutusuna, biçimi number.xml yazın ve sonra ' ı tıklatın. Biçim number.xml kod penceresi açılır.
    4. Varolan XML kodunu aşağıdaki XML kodu XML verileri sağlamak üzere Değiştir:
      <?xml version="1.0" encoding="UTF-8"?>
      <root>
          <number>1000</number>
      </root>
  4. XSLT stil sayfası ve XML dosyasını kullanarak XSLT dönüşümü gerçekleştirmeye çalışın.

    1. Class1.cs kod penceresine geçiş yapın.
    2. Varolan kod XSLT stil sayfasını kullanarak, XML verilerini dönüştürmek için çok sınıf'ı kullanmak için şu kodu kullanın.

      Not Aşağıdaki kodda, uygun dosya yolları XPathDocument kurucu ve xsltProcessor.Load yöntemi çağrıları kullanın:
      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. Uygulama oluşturmak ve sonra da uygulamayı çalıştırın. "Belirtiler" bölümünde açıklanan çıkış, bir konsol penceresinde görüntülenir.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması
307494Visual C#. NET'i kullanarak akış için bir XSL Dönüşümü için XML uygulama
Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitelerini ziyaret edin:
XsltException sınıfı
http://msdn2.microsoft.com/en-us/library/system.xml.xsl.xsltexception(vs.71).aspx
Format-number işlevini
http://msdn2.microsoft.com/en-us/library/ws343esk.aspx
Çok sınıfı
http://msdn2.microsoft.com/en-us/library/system.xml.xsl.xsltransform(vs.71).aspx

Özellikler

Makale numarası: 832757 - Last Review: 21 Mayıs 2007 Pazartesi - Gözden geçirme: 2.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework 1.1
Anahtar Kelimeler: 
kbmt kbqfe kbhotfixserver kbbug kbformat kbstyle kbxml kbsample kberrmsg kbcode kbfix KB832757 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:832757

Geri Bildirim Ver

 

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