การแก้ไข: ข้อยกเว้นของ System.Xml.Xsl.XsltException เกิดเมื่อคุณพยายามที่จะทำการแปลง XSLT โดยใช้สไตล์ชีมี XSLT ที่ใช้ฟังก์ชันหมายเลขการจัดรูปแบบ

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 832757 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

คุณสร้างสไตล์ชีตของอิน Extensible สไตล์ชีภาษาแปลง (XSLT) ที่ใช้ในการหมายเลขการจัดรูปแบบฟังก์ชัน ใน Microsoft Visual Studio .NET เมื่อคุณทำการแปลง XSLT ที่ใช้สไตล์ชีนี้พยายามที่จะแปลงตัวเลขที่เป็นค่าบวกกับสตริงการ ข้อยกเว้นของ System.Xml.Xsl.XsltException เกิดขึ้น เมื่อต้องการแก้ไขปัญหา ดาวน์โหลด และติดตั้งโปรแกรมแก้ไขด่วน เมื่อต้องการขอรับโปรแกรมแก้ไขด่วน ติดต่อบริการสนับสนุนผลิตภัณฑ์ของ Microsoft

อาการ

คุณสามารถสร้างการเพิ่มภาษาสไตล์ชี Extensible สไตล์ชีตของแปลง (XSLT) ที่ใช้ในการหมายเลขการจัดรูปแบบฟังก์ชัน ใน Microsoft Visual Studio .NET เมื่อคุณพยายามที่จะทำการแปลง XSLT โดยใช้สไตล์ชีนี้การแปลงหมายเลขที่เป็นค่าบวกสตริงการ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
ข้อยกเว้น unhandled ชนิด 'System.Xml.Xsl.XsltException' ที่เกิดขึ้นใน system.xml.dll
ถ้าคุณจัดการข้อยกเว้นเพื่อแสดงข้อยกเว้น inner และข้อความแสดงข้อยกเว้น คุณได้รับข้อความแสดงผลลัพธ์ต่อไปนี้:
System.ArgumentException: NumberGroupSizes
ชื่อพารามิเตอร์: ทุก ๆ องค์ประกอบในอาร์เรย์ของค่าควรอยู่ระหว่างหนึ่งถึงเก้า ยกเว้นสำหรับสุดท้ายองค์ ซึ่งสามารถเป็นศูนย์
เมื่อ System.Globalization.NumberFormatInfo.CheckGroupSize (สตริงการ propName, groupSize [] Int32)
เมื่อ System.Xml.Xsl.XsltCompileContext.FormatNumber (สองค่า formatPattern สตริงการ formatName สตริงการ)
เมื่อ System.Xml.Xsl.FuncFormatNumber.Invoke (xsltContext XsltContext วัตถุ[]อาร์กิวเมนต์ docContext XPathNavigator)
เมื่อ System.Xml.XPath.XsltFunction.InvokeFunction (XPathNavigator qy, XPathNodeIterator iterator)

ฟังก์ชัน 'format-number()' ล้มเหลว

การแก้ไข

สามารถโหลด hotfix ได้แล้วจาก Microsoft แต่มุ่งหวังให้ใช้เพื่อแก้ปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น ใช้ hotfix นี้เฉพาะกับระบบต่างๆ ที่พบปัญหานี้เท่านั้น hotfix นี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณไม่ได้รับผลกระทบที่รุนแรงจากปัญหานี้ เราขอแนะนำให้คุณรอ Service Pack รุ่นถัดไปซึ่งมีโปรแกรมแก้ไขด่วนนี้

การแก้ปัญหานี้ทันที ให้ติดต่อ Microsoft Product Support Services เพื่อรับ hotfix สำหรับรายชื่อทั้งหมดของหมายเลขโทรศัพท์ของ Microsoft Product Support Services และข้อมูลเกี่ยวกับค่าใช้จ่ายในการให้คำปรึกษา แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft::
http://support.microsoft.com/contactus/?ws=support
หมายเหตุ:ในกรณีพิเศษ อาจมีการยกเว้นค่าใช้จ่ายสำหรับการสนับสนุนทางโทรศัพท์หากผู้เชี่ยวชาญในการให้การสนับสนุนของ Microsoft ระบุว่าการปรับปรุงเฉพาะจะแก้ปัญหาของคุณได้ ค่าใช้จ่ายปกติจะใช้กับการให้การสนับสนุนสำหรับคำตอบเพิ่มเติมและเรื่องที่ไม่สามารถจัดเป็นคำถามเกี่ยวกับการอัพเดทเฉพาะโปรแกรมแก้ไขด่วนรุ่นภาษาอังกฤษนี้มีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มหลังจากนั้น) ซึ่งแสดงอยู่ในตารางต่อไปนี้ วันที่และเวลาของแฟ้มเหล่านี้จะปรากฏในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ข้อมูลจะถูกแปลงเป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้โซนเวลาแท็บในเครื่องมือ'วันและเวลา'ใน'แผงควบคุม'
   Date         Time   Version            Size    File name
   --------------------------------------------------------------
   03-Dec-2003  19:43  1.1.4322.978    1,339,392  System.xml.dll

สถานะ

Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "การใช้งาน"

ข้อมูลเพิ่มเติม

ขั้นตอนในการทำให้สถานการณ์เกิดขึ้นอีกครั้ง

  1. สร้างโครงการแอพลิเคชันของคอนโซล

    1. เริ่ม Microsoft Visual Studio .NET 2003
    2. ในการแฟ้ม:เมนู ให้ชี้ไปที่ใหม่แล้ว คลิกProject.
    3. ภายใต้ชนิดโครงการคลิกแสดงโครงการ c#แล้ว คลิกคอนโซลแอพลิเคชันภายใต้แม่แบบ.
    4. ในการชื่อ:กล่อง ชนิดFormatNumConsole.
    5. คลิกตกลง. โดยค่าเริ่มต้น การClass1.csหน้าต่างรหัสเปิดขึ้น
  2. สร้างสไตล์ชีมี XSLT ที่ใช้ฟังก์ชันหมายเลขการจัดรูปแบบ

    1. คลิกขวาใน Explorer โซลูชันFormatNumConsoleชี้ไปที่addแล้ว คลิกเพิ่มรายการใหม่. กระบวนการเพิ่มรายการใหม่ - FormatNumConsoleกล่องโต้ตอบปรากฏขึ้น
    2. ภายใต้ประเภทคลิกภายในรายการของโครงการ.
    3. ภายใต้แม่แบบคลิกXSLT แฟ้ม.
    4. ในการชื่อ:กล่อง ชนิดรูปแบบ number.xsltแล้ว คลิกOPEN. กระบวนการรูปแบบ 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. คลิกขวาใน Explorer โซลูชันFormatNumConsoleชี้ไปที่addแล้ว คลิกเพิ่มรายการใหม่. กระบวนการเพิ่มรายการใหม่ - FormatNumConsoleกล่องโต้ตอบปรากฏขึ้น
    2. ภายใต้แม่แบบคลิกXML แฟ้ม.
    3. ในการชื่อ:กล่อง ชนิดรูปแบบ number.xmlแล้ว คลิกOPEN. กระบวนการรูปแบบ number.xmlหน้าต่างรหัสเปิดขึ้น
    4. แทนที่โค้ด XML ที่มีอยู่กับ XML ต่อไปนี้รหัสเพื่อให้ข้อมูล XML:
      <?xml version="1.0" encoding="UTF-8"?>
      <root>
          <number>1000</number>
      </root>
  4. ความพยายามที่ทำการแปลง XSLT โดยใช้แผ่นงาน XSLT ลักษณะและแฟ้ม XML

    1. สลับไปยังหน้าต่างรหัส Class1.cs
    2. การแทนรหัสที่มีอยู่ ด้วยโค้ดต่อไปนี้จะใช้นั้นXslTransformคลาสของการแปลงข้อมูล XML โดยใช้สไตล์ชีตของของ XSLT

      หมายเหตุ:รหัสต่อไปนี้ ใช้เส้นทางของแฟ้มที่เหมาะสมในการเรียกไป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คำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์ของ Microsoft
307494วิธีการใช้การแปลง XSL XML สำหรับการส่งกระแสข้อมูลโดยใช้ Visual .NET c#
สำหรับข้อมูลเพิ่มเติม แวะไปไซต์เว็บ Network (MSDN) นักพัฒนา Microsoft ต่อไปนี้:
คลา XsltException
.aspx http://msdn2.microsoft.com/en-us/library/system.xml.xsl.xsltexception (vs.71)
หมายเลขการจัดรูปแบบฟังก์ชัน
http://msdn2.microsoft.com/en-us/library/ws343esk.aspx
คลา XslTransform
.aspx http://msdn2.microsoft.com/en-us/library/system.xml.xsl.xsltransform (vs.71)

คุณสมบัติ

หมายเลขบทความ (Article ID): 832757 - รีวิวครั้งสุดท้าย: 14 มกราคม 2554 - Revision: 2.0
ใช้กับ
  • Microsoft .NET Framework 1.1
Keywords: 
kbqfe kbhotfixserver kbbug kbformat kbstyle kbxml kbsample kberrmsg kbcode kbfix kbmt KB832757 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:832757

ให้ข้อเสนอแนะ

 

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