Postupy: Spouštět dotazy XPath pomocí třídy System.Xml.XPath

Překlady článku Překlady článku
ID článku: 317069 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento podrobný článek demonstruje použití třídy v oboru názvů System.Xml.XPath spouštět dotazy XPath aplikací .NET.

Prozkoumat System.Xml.XPath Namespace

Obor názvů System.Xml.XPath obsahuje analyzátor XPath a vyhodnocení stroj .NET Framework. Obor názvů System.Xml.XPath podporuje doporučení webu Consortium (W3C) jazyk XML Path (XPath) verze 1.0. Další informace o doporučení XPath na webu společnosti W3C:
XML Path Language (XPath) Version 1.0
Obor názvů System.Xml.XPath obsahuje také následující třídy, která jsou optimalizována a provádět dotazy XPath programově přejděte generované resultsets:
  • XPathDocument: čtení - pouze mezipaměti pro zpracování dokumentů XML a datové proudy Vysoký výkon. XPathDocument je optimalizována pro zpracování Extensible Stylesheet Language Transformation (XSLT) a datový model XPath. XPathDocument používá model objektu dokumentu (dom.) - založen analýzy modelu (načte zdroj XML do struktury stromu v paměti), ale neimplementuje rozhraní požadované vložit, upravit nebo odstranit uzly v dokumentu XML (Extensible Markup Language) nebo datového proudu.
  • XPathNavigator: Tato třída je založen na modelu dat XPath. XPathNavigator poskytuje požadované metody execute XPath dotazy vůči dat XML načten do XPathDocument. XPathNavigator instance pomocí metody CreateNavigator objekt XPathDocument. Můžete také použít XPathNavigator kompilovat často spuštěný dotaz výrazy XPath a generovat System.Xml.XPath.XPathExpression objekt, který zapouzdří kompilovaný dotaz.
  • XPathNodeIterator: poskytuje vpřed - pouze, čtení - pouze iterace. Při použití metody Vybrat objektu XPathNavigator k provedení dotazu XPath je vytvořena instance XPathNodeIterator. XPathNodeIterator můžete použít k navigaci komponenty resultset generovaných dotazu XPath.
  • XPathExpression: zapouzdří kompilovaný dotaz výraz XPath. Výraz dotazu XPath musí kompilace před execute výrazu dotazu. Kompilovaný výraz XPath obsahuje syntaxi je ověřena odpovídají specifikaci dotazovací jazyk XPath W3C. Volání metody CompileXPathNavigator objektu vrátí třída XPathExpression. Obvykle používají XPathExpression zadat předkompilovaný XPath výrazu dotazu ve volání metody VybratXPathNavigator objektu.
  • XPathException: Výjimka rozhraní .NET Framework je generována při výskytu chyby při zpracování dotazu výraz XPath. Metoda Vybrat a metodu Compile třída XPathNavigator zvýšit XPathException.

Vytvořit ukázkové dokumenty XML

Vytvořit dva ukázkové dokumenty XML použít následující ukázkový kód .NET, postupujte takto:
  1. Použití programu Poznámkový blok nebo podobné textového editoru, vložte následující kód do nového dokumentu XML s názvem Books.XML. Uložte dokument v kořenové složce na pevném disku.
    <?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. Použití programu Poznámkový blok nebo podobné textového editoru, vložte následující kód do nového dokumentu XML s názvem DotNetBooks.xml. Uložte dokument v kořenové složce na pevném disku.
    <?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>

Vytvoření projektu Visual Basic .NET

  1. Visual Studio .NET spusťte a vytvořit nový projekt aplikace Visual Basic .NET Windows.
  2. Přetáhněte dva ovládací prvky tlačítka z panelu nástrojů Form1.vb.
  3. Vložte následující kód v proceduře Click_Event první tlačítko příkazu:
    '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. Čtení vložených komentářů pochopení funkce kód Věnujte pozornost konkrétní vytvoří instanci a používá objekt instance každé třídy v oboru názvů System.Xml.XPath kód. Poznámka: řetězec určuje parametr dotazu výraz XPath v volání metody Vybrat objekt XPathNavigator.
  5. Vložte následující kód v proceduře Click_Event druhé tlačítko příkazu:
    '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. Čtení vložených komentářů pochopení funkce kód Věnujte pozornost konkrétní jak ukázkový kód vytvoří instanci objektu XPathExpression prvním (proti Books.XML) a potom opakovaně používá objekt při dotazu XPath provede podruhé (proti DotNetBooks.xml).

Testování projektu

  1. Uložit změny projektu Visual Basic .NET a execute projektu.
  2. Jakmile se zobrazí formulář, klepněte na první příkazové tlačítko spustit kód, který používá řetězec zadat výraz XPath dotazu. Výstup zadaný dotaz XPath proti Books.XML zobrazen následujícím způsobem:
    XML Step by Step
    Developing XML solutions
    					
  3. Klepněte na druhý příkazové tlačítko spustit kód, který používá objekt XPathExpression určit dotazu výraz XPath. Výstup zadaný dotaz XPath proti Books.XML a DotNetBooks.xml zobrazen následujícím způsobem:
    MSPress titles in books.xml...
    ******************************
    XML Step by Step
    Developing XML solutions
    
    MSPress titles in DotNetBooks.xml...
    ******************************
    ADO.Net Core Reference
    Inside C#
    					

Vlastnosti

ID článku: 317069 - Poslední aktualizace: 12. srpna 2005 - Revize: 4.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.0
Klíčová slova: 
kbmt kbhowtomaster KB317069 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:317069

Dejte nám zpětnou vazbu

 

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