NASıL YAPıLıR: System.Xml.XPath sınıfları kullanarak XPath sorguları Çalıştır.

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

Bu Sayfada

Özet

Bu adım adım makalede sınıfları System.Xml.XPath ad boşluğunda .NET uygulamalarında XPath sorguları yürütmek için nasıl kullanılacağını gösterir.

System.Xml.XPath ad keşfedin

System.Xml.XPath ad XPath çözümleyici ve .NET Framework'ün değerlendirme alt yapısı'nı içerir. System.Xml.XPath ad, World Wide Web Konsorsiyumu (W3C) XML Path Language (XPath) sürüm 1.0 öneriyi destekler. XPath öneri hakkında daha fazla bilgi için aşağıdaki W3C Web sitesini ziyaret edin:
XML Path Language (XPath) Version 1.0
Ayrıca System.Xml.XPath ad, XPath sorguları yürütmek ve programatik olarak oluşturulan resultsets en iyi duruma getirilmiş aşağıdaki sınıfları içerir:
  • XPathDocument: yüksek BIR performans okuma - yalnızca XML belgelerini ve akışlarını işleme önbelleğe. XPath veri modeli ve Genişletilebilir Stil Sayfası Dil Dönüşümü (XSLT) işleme için XPathDocument duruma getirilmiştir. XPathDocument belge nesne modeli (DOM) kullanır,-(kaynak XML'SINI bir bellek içi ağaç yapısına yükler) ayrıştırma modeline ancak eklemek, değiştirmek veya düğümleri bir Genişletilebilir Biçimlendirme Dili (XML) belge veya akışta silmek için gerekli bir arabirim uygulamıyor.
  • XPathNavigator: Bu sınıf XPath veri modeline dayanır. XPathNavigator, XML verilerini bir XPathDocument yüklenen XPath sorguları yürütmek için gerekli yöntemleri sağlar. XPathNavigator, CreateNavigator yöntemiyle XPathDocument nesnenin örneği. XPathNavigator Sık yürütülen bir XPath sorgusu ifadeleri derleyip, derlenmiş sorgu içeren bir System.Xml.XPath.XPathExpression nesnesi oluşturmak için de kullanılabilir.
  • XPathNodeIterator: ileriye doğru bir - yalnızca, okuma - yalnızca Yineleyici sağlar. Bir XPath sorgusu çalıştırmak için bir <a0>XPathNavigator</a0> nesnesinin <a2>Seç</a2> yöntemi kullandığınızda, XPathNodeIterator örneği oluşturulur. XPathNodeIterator, XPath sorgusu tarafından oluşturulan resultset gitmek için kullanabilirsiniz.
  • XPathExpression: XPath derlenmiş bir sorgu ifadesinde saklar. Bir <a0>XPath</a0> sorgu deyimi, sorgu ifadesi yürütebileceği önce derleme gerekir. Derlenmiş bir XPath ifadesi W3C XPath sorgusu dil belirtimine doğrulandıktan sözdizimi içeriyor. Bir <a0>XPathNavigator</a0> nesnesinin <a2>derle</a2> yöntemi çağrısı XPathExpression sınıf döndürür. Genellikle, XPathExpression bir önceden derlenmiş XPath sorgusu deyimini Seç yöntemi çağrısı XPathNavigator nesneyi sağlamak için kullanılır.
  • XPathException: bir <a0>XPath</a0> sorgu deyimi işlenirken bir hata ortaya çıktığında oluşturulan .NET Framework özel durum. Select yönteminin ve XPathNavigator</a0> sınıfının <a2>derle</a2> yöntemi, XPathException yükseltebilirsiniz.

Örnek XML belgeleri oluşturma

Sonraki .NET kodu örneği ile kullanmak için iki örnek XML belgesi oluşturmak için aşağıdaki adımları izleyin:
  1. Aşağıdaki kod yeni bir XML belgesine yapıştırmak için kullanın Not ya da benzer bir metin düzenleyicisi Books.xml adı. Belgeyi sabit diskin kök klasöründe kaydedin.
    <?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. Aşağıdaki kod yeni bir XML belgesine yapıştırmak için kullanın Not ya da benzer bir metin düzenleyicisi DotNetBooks.xml adı. Belgeyi sabit diskin kök klasöründe kaydedin.
    <?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>

Bir Visual Basic .NET projesi oluşturma

  1. Visual Studio. NET'i başlatın ve sonra da yeni bir Visual Basic .NET Windows uygulaması) projesi oluşturun.
  2. Araç kutusundan, iki Düğme denetimi Form1.vb için sürükleyin.
  3. Ilk komut düğmesi Click_Event yordamda aşağıdaki kodu yapıştırın:
    '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. Kodun işlevselliği anlamak için satır içi açıklamaları okuyun. Nasıl kod başlatır ve nesne örneklerini sınıflarının her System.Xml.XPath ad kullanan özel dikkat edin. Not, XPath ifadesini sorgu parametresi bir dize XPathNavigator</a0> nesnesinin <a2>Seç</a2> yöntemi çağrısı belirtir.
  5. Ikinci komut düğmesi Click_Event yordamda aşağıdaki kodu yapıştırın:
    '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. Kodun işlevselliği anlamak için satır içi açıklamaları okuyun. Nasıl örnek kod (karşı Books.xml) ilk kez XPathExpression nesnesi oluşturur ve XPath sorgusu (karşı DotNetBooks.xml) ikinci kez çalıştırıldığında nesneyi yeniden kullanan özel dikkat edin.

Proje sınama

  1. Değişiklikleri için Visual Basic .NET projesini kaydedin ve sonra projeyi çalıştırın.
  2. Form belirdiğinde, XPath ifadesini sorgu belirtmek için bir dize kullanan kod yürütmesine ilk komut düğmesini tıklatın. Belirtilen XPath sorgusunun Books.xml karşı çıktı aşağıdaki gibi görünür:
    XML Step by Step
    Developing XML solutions
    					
  3. XPath ifadesini sorgu belirtmek için bir XPathExpression nesnesini kullanan kod yürütmesine ikinci komut düğmesini tıklatın. Belirtilen XPath sorgusunun Books.xml ve DotNetBooks.xml çıktı aşağıdaki gibi görünür:
    MSPress titles in books.xml...
    ******************************
    XML Step by Step
    Developing XML solutions
    
    MSPress titles in DotNetBooks.xml...
    ******************************
    ADO.Net Core Reference
    Inside C#
    					

Özellikler

Makale numarası: 317069 - Last Review: 12 Ağustos 2005 Cuma - Gözden geçirme: 4.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.0
Anahtar Kelimeler: 
kbmt kbhowtomaster KB317069 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:317069

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