วิธีการแบบสอบถาม XML มีนิพจน์ XPath โดยใช้ Visual c#

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

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

สรุป

บทความนี้อธิบายวิธีการสอบถามXPathDocumentวัตถุที่ มีการใช้ภาษาของเส้นทาง XML (XPath) นิพจน์นี้XPathNavigatorคลาสที่ xpath ถูกใช้โดยทางโปรแกรมเพื่อประเมินนิพจน์ และเลือกโหนที่ระบุในเอกสาร

ความต้องการ

รายการต่อไปนี้แสดงฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่คุณต้องการ:
  • visual c#
บทความนี้อนุมานว่า คุณไม่คุ้นเคยกับหัวข้อต่อไปนี้:
  • คำศัพท์ xml
  • สร้างและการอ่านแฟ้ม XML
  • ไวยากรณ์ของ xpath

วิธีการสอบถาม XML กับนิพจน์ XPath

  1. สร้างแบบใหม่ Visual c# คอนโซล Application ใน Visual Studio

    หมายเหตุ:: ตัวอย่างนี้ใช้แฟ้มที่ชื่อ Books.xml คุณสามารถสร้างแฟ้มของคุณเอง Books.xml หรือคุณสามารถใช้ตัวอย่างที่มาพร้อมกับ Quickstarts Kit ในการพัฒนาซอฟต์แวร์.NET (SDK) ถ้าคุณไม่สามารถมี Quickstarts ติดตั้ง และไม่ต้องการติดตั้ง ดูส่วน "อ้างอิง" สำหรับ Books.xml ตำแหน่งที่ตั้งที่ดาวน์โหลด ถ้าคุณมี Quickstarts ติดตั้ง สามารถพบแฟ้มในโฟลเดอร์ต่อไปนี้:
    โปรแกรม Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    คุณต้องคัดลอกแฟ้มไปยัง \Bin\Debug โฟลเดอร์ ที่อยู่ภายใต้โฟลเดอร์ที่คุณสร้างโครงการนี้
  2. ตรวจสอบให้แน่ใจว่า โครงการอ้างอิงนั้นSystem.Xmlnamespace
  3. ใช้แบบการใช้คำชี้แจงสิทธิ์ในการXMLและxpathnamespaces ดังนั้นคุณไม่จำเป็นต้องกำหนดคุณสมบัติ declarations ใน namespaces เหล่านั้นในภายหลังในรหัสของคุณ คุณต้องใช้การการใช้คำสั่งก่อนที่จะมีอื่น ๆ declarations ดัง:
    using System.Xml;
    using System.Xml.XPath;
    					
  4. กำหนดตัวแปรที่เหมาะสม ประกาศเป็นXPathDocumentวัตถุที่จะเก็บเอกสาร XML ข้อXpathNavigatorวัตถุการประเมินนิพจน์ XPath และเพิ่มXPathNodeIteratorวัตถุการ iterate ผ่านโหนที่เลือก ประกาศเป็นstringวัตถุเพื่อเก็บนิพจน์ XPath เพิ่มรหัสการรายงานภาษีในนั้นหลักฟังก์ชันใน Class1
       XPathNavigator nav;
       XPathDocument docNav;
       XPathNodeIterator NodeIter;
       String strExpression;
    					
  5. การโหลดการXPathDocumentด้วยตัวอย่างแฟ้ม Books.xml กระบวนการXPathDocumentคลาใช้ Extensible สไตล์ชีภาษาแปลง (XSLT) เพื่อให้การแคชรวดเร็ว และ เป็นประสิทธิภาพสำหรับการประมวลผลเอกสาร XML จะเหมือนกับ XML เอกสารวัตถุแบบจำลอง (DOM) แต่รับการออกเป็นอย่างยิ่งแบบสำหรับการประมวลผล XSLT และรูปแบบข้อมูล XPath
        // Open the XML.
        docNav = new XPathDocument(@"c:\books.xml");
    					
  6. สร้างข้อXPathNavigatorจากเอกสาร กระบวนการXPathNavigatorวัตถุที่ถูกใช้สำหรับการสอบถาม XPath แบบอ่านอย่างเดียว แบบสอบถาม XPath อาจส่งกลับค่าผลลัพธ์หรือโหนจำนวนมาก
         // Create a navigator to query with XPath.
         nav = docNav.CreateNavigator();
    					
  7. สร้างนิพจน์ XPath เพื่อค้นหาต้นทุนเฉลี่ยของยังสมุดบัญชี นิพจน์นี้ XPath ส่งกลับค่าเดียว สำหรับรายละเอียดทั้งหมดเกี่ยวกับไวยากรณ์ของ XPath ให้ดูที่ "XPath ไวยากรณ์" ในส่วน "อ้างอิง"
         // Find the average cost of a book.
         // This expression uses standard XPath syntax.
         strExpression = "sum(/bookstore/book/price) div count(/bookstore/book/price)";
    					
  8. ใช้แบบประเมินวิธีการนี้XPathNavigatorวัตถุการประเมินนิพจน์ XPath กระบวนการประเมินวิธีการส่งกลับค่าผลลัพธ์ของนิพจน์
        // Use the Evaluate method to return the evaluated expression.
        Console.WriteLine("The average cost of the books are {0}", nav.Evaluate(strExpression));
  9. สร้างนิพจน์ XPath เพื่อค้นหาทั้งหมดของบัญชีที่ต้นทุนมากกว่าสิบดอลลาร์ นิพจน์นี้ XPath ส่งกลับค่าเฉพาะชื่อโหนจากแหล่งข้อมูล XML
        // Find the title of the books that are greater then $10.00.
        strExpression = "/bookstore/book/title[../price>10.00]";
    					
  10. สร้างข้อXPathNodeIteratorสำหรับโหนที่เลือกด้วยการเลือกวิธีการนี้XPathNavigator. กระบวนการXPathNodeIteratorแทน nodeset XPath และดังนั้น สนับสนุนการดำเนินการบน nodeset นี้
        // Select the node and place the results in an iterator.
        NodeIter = nav.Select(strExpression);
  11. ใช้แบบXPathNodeIteratorซึ่งถูกส่งกลับจากนั้นเลือกวิธีการXPathNavigatorการย้ายไปตามโหนที่เลือก ในกรณีนี้ คุณสามารถใช้การMoveNextวิธีการนี้XPathNodeIteratorเมื่อต้องการ iterate ผ่านโหนที่เลือกทั้งหมด
      Console.WriteLine("List of expensive books:");
      //Iterate through the results showing the element value.
      while (NodeIter.MoveNext())
      {
          Console.WriteLine("Book Title: {0}", NodeIter.Current.Value);
      };
    					
  12. ใช้แบบReadLineวิธีการเพิ่มการหยุดชั่วคราวในตอนท้ายของจอแสดงผลของคอนโซลมาก readily แสดงผลลัพธ์ที่ด้านบน
        // Pause
        Console.ReadLine();
    					
  13. สร้าง และเรียกใช้โครงการของคุณ โปรดสังเกตว่า ผลลัพธ์ที่แสดงในหน้าต่างคอนโซล

การแก้ไขปัญหา

เมื่อคุณทำทดสอบรหัส คุณอาจได้รับข้อความแสดงข้อความแสดงข้อยกเว้นข้อผิดพลาดต่อไปนี้:
ข้อยกเว้น unhandled ชนิด 'System.Xml.XmlException' ที่เกิดขึ้นใน System.xml.dll

ข้อมูลเพิ่มเติม: ข้อผิดพลาดของระบบ
เกิดข้อผิดพลาดข้อยกเว้นในบรรทัดของรหัสต่อไปนี้:
docNav = new XPathDocument("c:\\books.xml");
				
ข้อผิดพลาดข้อยกเว้นเกิดขึ้น โดยมีคำสั่งการประมวลผลไม่ถูกต้อง ตัวอย่างเช่น คำสั่งการประมวลผลอาจประกอบด้วยการเว้นวรรค extraneous ต่อไปนี้คือ ตัวอย่างของคำสั่งการประมวลผลไม่ถูกต้องที่ใช้งาน:
<?xml version='1.0' ?>
ข้อยกเว้นการแก้ไข เลือกทำอย่างใดอย่างหนึ่งต่อไปนี้:
  • แก้ไขคำสั่งการประมวลผลไม่ถูกต้อง ต่อไปนี้คือ ตัวอย่างของคำสั่งการประมวลผลที่ถูกต้องที่ใช้งาน:
    <?xml version='1.0'?>
    หรือ
  • ลบคำสั่งการประมวลผล XML จากแฟ้ม Books.xml

ข้อมูลอ้างอิง

แฟ้มต่อไปนี้สามารถดาวน์โหลดได้จากศูนย์ดาวน์โหลดของ Microsoft::
ยุบรูปภาพนี้ขยายรูปภาพนี้
ดาวน์โหลด
ดาวน์โหลด Books.xml เดี๋ยวนี้
สำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:
XML ใน.NET: คลาส XML Framework .NET และข้อเสนอ c# แบบธรรมดา Scalable ข้อมูล Manipulation
http://msdn.microsoft.com/msdnmag/issues/01/01/xml/default.aspx

คลาสของ XPathNavigator
http://msdn.microsoft.com/en-us/library/system.xml.xpath.xpathnavigator.aspx

คลาสของ XPathDocument
http://msdn.microsoft.com/en-us/library/system.xml.xpath.xpathdocument.aspx

คลาสของ XPathNodeIterator
http://msdn.microsoft.com/en-us/library/system.xml.xpath.xpathnodeiterator.aspx

การแปลง xslt กับคลา XslTransform
http://msdn.microsoft.com/en-us/library/47yh29a9.aspx

ไวยากรณ์ของ xpath
http://msdn2.microsoft.com/en-us/library/ms763742.aspx
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ XPath แวะไปที่เว็บไซต์ของเวิลด์ไวด์เว็บ Consortium (W3C) ต่อไปนี้:
ภาษาของเส้นทาง xml (XPath)
รุ่น 1.0: คำแนะนำ W3C 1999 16 พฤศจิกายน
http://www.w3.org/TR/1999/REC-xpath-19991116

คุณสมบัติ

หมายเลขบทความ (Article ID): 308333 - รีวิวครั้งสุดท้าย: 10 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbdownload kbhowtomaster kbmt KB308333 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:308333

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

 

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