Jak dotazu XML s výraz XPath pomocí aplikace Visual C#

Překlady článku Překlady článku
ID článku: 308333 - 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 článek ukazuje, jak zadat dotaz XPathDocument Výraz jazyk XML Path (XPath) pomocí objektu Prvek XPathNavigator Třída. XPath lze programově vyhodnocení výrazů a vybrat určité uzly v dokumentu.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a aktualizace service Pack, které potřebujete:
  • Visual C#
Tento článek předpokládá znalost těchto témat:
  • Terminologie jazyka XML
  • Vytváření a čtení souboru XML
  • Syntaxe jazyka XPath

Jak XML pomocí výrazu XPath pro dotaz

  1. Vytvořte novou aplikaci Visual C# konzole aplikaci v aplikaci Visual Studio.

    POZNÁMKA:: V tomto příkladu je soubor s názvem Books.xml. Můžete vytvořit vlastní soubor Books.xml, nebo můžete použít vzorek, který je součástí.Pomůcky pro NET Software Development Kit (SDK) začátečníky. Pokud nemají pomůcky pro začátečníky, instalaci a nechcete nainstalovat, naleznete "Odkazy" Books.xml umístění souboru ke stažení. Máte-li pomůcky pro začátečníky, nainstalován, můžete soubor nalezen v následující složce:
    Program Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    Je nutné zkopírovat soubor do složky \Bin\Debug, která je umístěna ve složce, ve kterém jste vytvořili tento projekt.
  2. Ujistěte se, že projekt odkazuje System.XML obor názvů.
  3. Použít použití prohlášení o XML a XPath obory názvů, takže není nutné deklarace v těchto oborech názvů dále v kódu. Je nutné použít použití prohlášení před všemi deklaracemi takto:
    using System.Xml;
    using System.Xml.XPath;
    					
  4. Odpovídající proměnné Deklarujte. Prohlášení XPathDocument objekt pro uložení dokumentu XML, Prvek XpathNavigator objekt k vyhodnocení výrazů XPath a XPathNodeIterator objekt lze iterovat vybrané uzly. Prohlášení Řetězec objekt obsahovat výrazy XPath. Přidání kódu v prohlášení Hlavní funkce v Class1.
       XPathNavigator nav;
       XPathDocument docNav;
       XPathNodeIterator NodeIter;
       String strExpression;
    					
  5. Zatížení XPathDocument Ukázkový soubor Books.xml. Na XPathDocument Třída poskytují rychlý a výkonu mezipaměti pro zpracování dokumentů XML pomocí Extensible Stylesheet Language Transformations (XSLT). Podobá se XML DOM (Document Object Model), ale je vysoce optimalizována pro zpracování XSLT a XPath datového modelu.
        // Open the XML.
        docNav = new XPathDocument(@"c:\books.xml");
    					
  6. Vytvoření Prvek XPathNavigator z dokumentu. Na Prvek XPathNavigator objekt se používá pro dotazy jazyka XPath jen pro čtení. Dotazy jazyka XPath může vrátit výsledné hodnoty nebo mnoho uzlů.
         // Create a navigator to query with XPath.
         nav = docNav.CreateNavigator();
    					
  7. Vytvořte výraz XPath najít průměrnou cenu knihy. Tento výraz XPath vrací jedinou hodnotu. Podrobnosti o syntaxi jazyka XPath viz "Syntaxe XPath" v části "Odkazy".
         // Find the average cost of a book.
         // This expression uses standard XPath syntax.
         strExpression = "sum(/bookstore/book/price) div count(/bookstore/book/price)";
    					
  8. Použít Vyhodnotit Metoda Prvek XPathNavigator objekt vyhodnotit výraz XPath. Na Vyhodnotit Metoda vrátí výsledky výrazu.
        // Use the Evaluate method to return the evaluated expression.
        Console.WriteLine("The average cost of the books are {0}", nav.Evaluate(strExpression));
  9. Vytvořte výraz XPath k vyhledání všech knih, které náklady více než deset dolarů. Tento výraz XPath vrací pouze uzly hlavy z zdroj XML.
        // Find the title of the books that are greater then $10.00.
        strExpression = "/bookstore/book/title[../price>10.00]";
    					
  10. Vytvoření XPathNodeIterator pro uzly, které jsou vybrány s Vybrat Metoda Prvek XPathNavigator. Na XPathNodeIterator nodeset XPath představuje a proto podporuje operace na tomto nodeset.
        // Select the node and place the results in an iterator.
        NodeIter = nav.Select(strExpression);
  11. Použít XPathNodeIterator, který vrátil Vybrat Metoda Prvek XPathNavigator, pohyb vybrané uzly. V takovém případě můžete použít Metodu MoveNext Metoda XPathNodeIterator lze iterovat všechny vybrané uzly.
      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. Použít ReadLine způsob přidání přerušení na konci zobrazení konzoly snáze zobrazovat nad výsledky.
        // Pause
        Console.ReadLine();
    					
  13. Vytvoření a spuštění projektu. Všimněte si, že výsledky jsou zobrazeny v okně konzoly.

Poradce při potížích

Při testování kódu, zobrazí se následující chybová zpráva výjimky:
V System.xml.dll došlo k neošetřené výjimce typu "System.Xml.XmlException"

Další informace: systémová chyba.
Dochází k chybě výjimku na následující řádek kódu:
docNav = new XPathDocument("c:\\books.xml");
				
Výjimka chyba je způsobena neplatný zpracování. Instrukce pro zpracování může například obsahovat nadbytečné mezery. Následuje příklad instrukce pro zpracování neplatné:
<?xml version='1.0' ?>
Výjimku vyřešíte proveďte následující akce:
  • Opravte neplatné zpracování. Následuje příklad instrukce pro zpracování platné:
    <?xml version='1.0'?>
    -NEBO-
  • Instrukce pro zpracování XML odeberte soubor Books.xml.

Odkazy

Následující soubor je k dispozici ke stažení z centra pro stahování Microsoft Download Center:
Zmenšit tento obrázekZvětšit tento obrázek
Stáhnout
Stáhnout Books.xml
Další informace naleznete na následujících webech společnosti Microsoft:
XML v.NET:.Třídy XML rozhraní .NET Framework a C# nabízejí snadná a škálovatelná dat manipulace
http://msdn.microsoft.com/msdnmag/issues/01/01/XML/default.aspx

Prvek XPathNavigator třídy
http://msdn.microsoft.com/en-us/library/System.XML.XPath.XPathNavigator.aspx

Třída XPathDocument
http://msdn.microsoft.com/en-us/library/System.XML.XPath.xpathdocument.aspx

Třída XPathNodeIterator
http://msdn.microsoft.com/en-us/library/System.XML.XPath.XPathNodeIterator.aspx

Transformace XSLT XslTransform třídy
http://msdn.microsoft.com/en-us/library/47yh29a9.aspx

Syntaxe jazyka XPath
http://msdn2.microsoft.com/en-us/library/ms763742.aspx
Další informace o XPath naleznete na tomto webu World Wide Web Consortium (W3C):
Jazyk XML Path (XPath)
Verze 1.0: Doporučení W3C dne 16. listopadu 1999
http://www.w3.org/TR/1999/rec-XPath-19991116

Vlastnosti

ID článku: 308333 - Poslední aktualizace: 18. května 2011 - Revize: 9.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Klíčová slova: 
kbdownload kbhowtomaster kbmt KB308333 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:308333

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