HOW TO: ปฏิบัติการแบบสอบถาม XPath โดยใช้คลาส System.Xml.XPath

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

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

สรุป

บทความที่มีการทีละขั้นตอนนี้อธิบายวิธีการใช้ระดับชั้นในนั้นSystem.Xml.XPathnamespace ในการดำเนินการสอบถาม XPath ในโปรแกรมประยุกต์.NET

สำรวจ System.Xml.XPath Namespace

กระบวนการSystem.Xml.XPathnamespace ประกอบด้วยตัวแยกวิเคราะห์ XPath และโปรแกรมการประเมินของ.NET Framework กระบวนการSystem.Xml.XPathnamespace สนับสนุนคำแนะนำรุ่น 1.0 ภาษาเส้นทาง XML (XPath) Consortium เวิลด์ไวด์เว็บ (W3C) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำแนะนำของ XPath ไปที่ W3C เว็บไซต์ต่อไปนี้:กระบวนการSystem.Xml.XPathnamespace ประกอบด้วยคลาสที่ต่อไปนี้ที่ได้รับการออกแบบเพื่อดำเนินการสอบถาม XPath และนำทาง resultsets ที่สร้างขึ้นโดยทางโปรแกรม:
  • XPathDocument: แบบสูงประสิทธิภาพ แคสำหรับการประมวลผลเอกสาร XML และกระแสข้อมูลแบบอ่านอย่างเดียวXPathDocumentรับการออกเป็นแบบ สำหรับการประมวลผล Extensible สไตล์ชีภาษาแปลง (XSLT) และรูปแบบข้อมูล XPathXPathDocumentใช้รูปแบบจำลองของวัตถุเอกสาร (DOM) - ขึ้นอยู่กับแบบจำลองการแยกวิเคราะห์ (โหลด XML แหล่งที่มาไว้ในโครงสร้างแผนภูมิในหน่วยความจำเป็น) แต่ไม่ใช้อินเทอร์เฟซจำเป็นต้องใช้ เพื่อแทรก ปรับเปลี่ยน หรือลบโหนในเอกสาร Extensible Markup ภาษา (XML) หรือกระแสข้อมูล
  • XPathNavigator: คลาสนี้จะขึ้นอยู่กับรุ่นของข้อมูล XPathXPathNavigatorแสดงวิธีการจำเป็นสำหรับการดำเนินการสอบถาม XPath จากข้อมูล XML ที่โหลดเข้าในการXPathDocument.XPathNavigatorinstantiated โดยใช้การCreateNavigatorวิธีการเพิ่มXPathDocumentวัตถุ คุณยังสามารถใช้XPathNavigatorในการคอมไพล์นิพจน์แบบสอบถาม XPath ที่ทำบ่อย ๆ และสร้างตัวSystem.Xml.XPath.XPathExpressionวัตถุ encapsulates แบบสอบถามที่คอมไพล์แล้ว
  • XPathNodeIterator: แสดง iterator ไปข้างหน้าอย่างเดียว แบบอ่านอย่างเดียว เมื่อคุณใช้การเลือกวิธีการเพิ่มXPathNavigatorดำเนินการการสอบถาม XPath ต้องอินสแตนซ์ของวัตถุXPathNodeIteratorถูกสร้างขึ้น คุณสามารถใช้ได้XPathNodeIteratorเมื่อต้องการนำทาง resultset ที่สร้างขึ้น โดยการสอบถาม XPath
  • XPathExpression: encapsulates นิพจน์แบบสอบถาม XPath การคอมไพล์แล้ว คุณต้องคอมไพล์นิพจน์แบบสอบถาม XPath ก่อนที่คุณสามารถใช้นิพจน์แบบสอบถาม นิพจน์ XPath ที่คอมไพล์แล้วประกอบด้วยไวยากรณ์ที่ถูกตรวจสอบเพื่อเป็นการกำหนดภาษาของแบบสอบถาม XPath W3C การเรียกการคอมไพล์วิธีการเพิ่มXPathNavigatorวัตถุการส่งคืนนี้XPathExpressionคลาสที่ โดยทั่วไป ใช้ของคุณXPathExpressionเมื่อต้องการใส่นิพจน์แบบสอบถาม XPath ที่ precompiled ในการเรียกเลือกวิธีการเพิ่มXPathNavigatorวัตถุ
  • XPathException: ข้อยก.NET Framework เว้นซึ่งสร้างขึ้นเมื่อมีข้อผิดพลาดเกิดขึ้นขณะกำลังประมวลผลนิพจน์แบบสอบถาม XPath กระบวนการเลือกวิธีการ และการคอมไพล์วิธีการนี้XPathNavigatorคลาสามารถยกXPathException.

สร้างเอกสาร XML ตัวอย่าง

เมื่อต้องการสร้างเอกสาร XML ตัวอย่างสองไปใช้กับตัวอย่างรหัส.NET ที่ตามมา ดำเนินการดังต่อไปนี้:
  1. ใช้ Notepad หรือตัวแก้ไขข้อความที่คล้ายกันจะวางรหัสต่อไปนี้ในเอกสาร XML ใหม่ชื่อ Books.xml บันทึกเอกสารในโฟลเดอร์รากบนฮาร์ดดิสก์ของคุณ
    <?xml version='1.0'?>
    <Books>
    <Book>
      <Title>Beginning XML</Title>
      <Publisher>Wrox</Publisher>
    </Book>
    <Book>
      <Title>XML Step by Step</Title>
      <Publisher>MSPress</Publisher>
    </Book>
    <Book>
      <Title>Professional XML</Title>
      <Publisher>Wrox</Publisher>
    </Book>
    <Book>
      <Title>Developing XML solutions</Title>
      <Publisher>MSPress</Publisher>
    </Book>
    </Books>
    					
  2. ใช้ Notepad หรือตัวแก้ไขข้อความที่คล้ายกันจะวางรหัสต่อไปนี้ในเอกสาร XML ใหม่ชื่อ DotNetBooks.xml บันทึกเอกสารในโฟลเดอร์รากบนฮาร์ดดิสก์ของคุณ
    <?xml version='1.0'?>
    <DotNetBooks>
    <DotNetBook>
      <Title>Professional C#</Title>
      <Publisher>Wrox</Publisher>
    </DotNetBook>
    <DotNetBook>
      <Title>ADO.Net Core Reference</Title>
      <Publisher>MSPress</Publisher>
    </DotNetBook>
    <DotNetBook>
      <Title>Professional VB.Net</Title>
      <Publisher>Wrox</Publisher>
    </DotNetBook>
    <DotNetBook>
      <Title>Inside C#</Title>
      <Publisher>MSPress</Publisher>
    </DotNetBook>
    </DotNetBooks>

สร้างโครงการการ.NET Visual Basic

  1. เริ่มการทำงานของ Visual Studio .NET และสร้างโครงการใหม่ของแอพลิเคชัน Windows .NET Visual Basic
  2. ลากสองปุ่มตัวควบคุมจากกล่องเครื่องมือการ Form1.vb
  3. วางรหัสต่อไปนี้ในการClick_Eventขั้นตอนของปุ่มคำสั่งแรก:
    'Instantiate the XPathDocument class.
    Dim xmldoc As New System.Xml.XPath.XPathDocument("c:\books.xml")
    
    'Instantiate the XPathNavigator class.
    Dim nav As System.Xml.XPath.XPathNavigator = xmldoc.CreateNavigator()
    
    'Instantiate the XPathIterator class.
    Dim iterator As System.Xml.XPath.XPathNodeIterator = nav.Select("//Publisher[. = 'MSPress']/parent::node()/Title")
    
    'Use the XPathIterator class to navigate through the generated resultset
    'and then display the selected Titles.
    Do While iterator.MoveNext
        System.Diagnostics.Debug.WriteLine(iterator.Current.Value)
    Loop
    					
  4. อ่านข้อคิดเห็นแบบอินไลน์การทำความเข้าใจเกี่ยวกับการทำงานของรหัส ความสนใจที่ระบุถึงวิธีการที่รหัส instantiates และใช้อินสแตนซ์ของวัตถุของคลาสที่ในแต่ละการชำระค่าจ้างนี้System.Xml.XPathnamespace โปรดสังเกตว่า สายอักขระที่ระบุพารามิเตอร์นิพจน์แบบสอบถาม XPath ในการเรียกไปเลือกวิธีการนี้XPathNavigatorวัตถุ
  5. วางรหัสต่อไปนี้ในการClick_Eventขั้นตอนของปุ่มคำสั่งที่สอง:
    'Construct the XPathDocument by specifying the path to Books.xml.
    Dim xmldoc As New System.Xml.XPath.XPathDocument("c:\books.xml")
    
    'Create the XPathNavigator.
    Dim nav As System.Xml.XPath.XPathNavigator = xmldoc.CreateNavigator()
    
    'Compile the XPath query expression to identify all MSPress Titles.
    'The Compile method of the XPathNavigator generates an XPathExpression object
    'that encapsulates the compiled query expression.
    
    Dim expr As System.Xml.XPath.XPathExpression = nav.Compile("//Publisher[. = 'MSPress']/parent::node()/Title")
    
    'Execute the Select method of the XPathNavigator to create the XPathNodeIterator.
    'Note that the sample code supplies the XPathExpression object as the query expression parameter.
    Dim iterator As System.Xml.XPath.XPathNodeIterator = nav.Select(expr)
    
    System.Diagnostics.Debug.WriteLine("MSPress titles in books.xml...")
    System.Diagnostics.Debug.WriteLine("******************************")
    
    'Use the iterator to navigate the generated resultset.
    Do While iterator.MoveNext
        System.Diagnostics.Debug.WriteLine(iterator.Current.Value)
    Loop
    
    
    'Release the XPathDocument and XPathNavigator.
    xmldoc = Nothing
    nav = Nothing
    
    System.Diagnostics.Debug.WriteLine(vbCrLf & "MSPress titles in DotNetBooks.xml...")
    System.Diagnostics.Debug.WriteLine("******************************")
    
    'Specify the path to DotNetBooks.xml to reconstruct the XPathDocument.
    xmldoc = New System.Xml.XPath.XPathDocument("c:\DotNetBooks.xml")
    
    'Create the XPathNavigator.
    nav = xmldoc.CreateNavigator()
    
    'Reuse the XPathExpression that you compiled previously to locate
    'all MSPress titles in DotNetBooks.xml.
    
    'You can reuse the XPathExpression because the hierarchy of elements that are referenced
    'in the XPath query is the same in Books.xml and DotNetBooks.xml. 
    'For example, the Publisher element is a child of the Title element in both XML documents.
    'The hierarchy must be identical for you to reuse the same XPathExpression object
    'across different XML documents/streams.
    
    'When you use an XPathExpression object, and the Select method executes,
    'the XPath query is not recompiled. 
    
    iterator = nav.Select(expr)
    
    'Use the iterator to navigate the generated resultset.
    Do While iterator.MoveNext
         System.Diagnostics.Debug.WriteLine(iterator.Current.Value)
    Loop
    					
  6. อ่านข้อคิดเห็นแบบอินไลน์การทำความเข้าใจเกี่ยวกับการทำงานของรหัส ความสนใจเฉพาะเพื่อ instantiates โค้ดตัวอย่างวิธีการชำระค่าจ้างนี้XPathExpressionวัตถุเป็นครั้งแรก (กับ Books.xml), และ reuses วัตถุแล้ว เมื่อมีดำเนินการแบบสอบถาม XPath ครั้งที่สอง (กับ DotNetBooks.xml)

ทดสอบโครงการ

  1. บันทึกการเปลี่ยนแปลงไปยังโครงการ Visual Basic .NET และจากนั้น ดำเนินการโครงการ
  2. เมื่อปรากฏขึ้นในแบบฟอร์ม คลิกปุ่มคำสั่งแรกในการดำเนินการรหัสที่ใช้สายอักขระที่ระบุนิพจน์แบบสอบถาม XPath ผลลัพธ์ของแบบสอบถาม XPath ที่ระบุจาก Books.xml ปรากฏดังนี้:
    XML Step by Step
    Developing XML solutions
    					
  3. คลิกที่ปุ่มคำสั่งที่สองรหัสที่ใช้ในการดำเนินการXPathExpressionวัตถุเพื่อระบุนิพจน์แบบสอบถาม XPath ผลลัพธ์ของแบบสอบถาม XPath ที่ระบุจาก Books.xml และ DotNetBooks.xml ปรากฏดังนี้:
    MSPress titles in books.xml...
    ******************************
    XML Step by Step
    Developing XML solutions
    
    MSPress titles in DotNetBooks.xml...
    ******************************
    ADO.Net Core Reference
    Inside C#
    					

คุณสมบัติ

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

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

 

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