Je bent nu offline; er wordt gewacht tot er weer een internetverbinding is

Hoe XML-query met een XPath-expressie met behulp van Visual c#

BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.

De Engelstalige versie van dit artikel is de volgende:308333
Voor een Microsoft Visual Basic.NETTO-versie van dit artikel, raadpleegt u301220.

Dit artikel verwijst naar de volgende Microsoft.NET Framework Class Library-naamruimte:
  • System.XML.XPath

IN DEZE TAAK

Samenvatting
In dit artikel wordt beschreven hoe query eenXPathDocumentobject met een XML Path Language (XPath) expressie met deXPathNavigatorklasse. XPath wordt programmatisch gebruikt om expressies te evalueren en selecteren van specifieke knoop punten in een document.

back to the top

Vereisten

De volgende lijst bevat een overzicht van de aanbevolen hardware, software, net werk infrastructuur en service packs die u nodig hebt:
  • Visual c#
In dit artikel wordt ervan uitgegaan dat u bekend met de volgende onderwerpen bent:
  • XML-terminologie
  • Maken en lezen van een XML-bestand
  • XPath-syntaxis
back to the top

Doorzoeken van XML met een XPath-expressie

  1. Maak een nieuw Visual c# Console toepassing in Visual Studio.

    OPMERKINGIn het volgende voorbeeld wordt een bestand met de naam Books. XML. U kunt zelf een bestand maken of kunt u het voorbeeld dat wordt geleverd met het.Introductie handleidingen NET Software Development Kit (SDK). Als u niet over de introductie handleidingen geïnstalleerd beschikt en u niet wilt installeren, raadpleegt u het gedeelte "Verwijzingen" voor de Books downloadlocatie. Als u de introductie handleidingen geïnstalleerd hebt, kan het bestand kan worden gevonden in de volgende map:
    Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB programma
    U moet het bestand kopiëren naar de map \Bin\Debug bevindt zich onder de map waarin u dit project gemaakt.
  2. Zorg ervoor dat het project verwijst naar deSystem. XMLnaam ruimte.
  3. Gebruik demet behulp vaninstructie op deXMLenXPathnaam ruimten zodat u niet hoeft te kwalificeren declaraties in deze naam ruimten in uw code later. Moet u demet behulp vanverklaring voorafgaande declaraties, als volgt:
    using System.Xml;using System.Xml.XPath;					
  4. De juiste variabelen declareren. Declareer eenXPathDocumentobject voor het XML-document, eenXpathNavigatorobject XPath-expressies te evalueren en eenXPathNodeIteratorobject dat de geselecteerde knoop punten doorlopen. Declareer eenTeken reeksobject waarin het XPath-expressies. Voeg de declaratie code in deHoofdfunctie Class1.
       XPathNavigator nav;   XPathDocument docNav;   XPathNodeIterator NodeIter;   String strExpression;					
  5. Laad eenXPathDocumentmet het voorbeeldbestand Books. XML.HetXPathDocumentklasse gebruikt XSLT (Extensible Stylesheet Language Transformations) voor een snelle en prestatiegerichte cache voor verwerking van XML-documenten. Het is vergelijkbaar met het XML DOM (Document Object Model), maar wordt verregaand geoptimaliseerd voor XSLT-verwerking en het gegevensmodel van XPath.
        // Open the XML.    docNav = new XPathDocument(@"c:\books.xml");					
  6. Maak eenXPathNavigatoruit het document. HetXPathNavigatorobject wordt gebruikt voor alleen-lezen XPath-query's. De XPath-query's kunnen de resulterende waarde of veel knoop punten retourneren.
         // Create a navigator to query with XPath.     nav = docNav.CreateNavigator();					
  7. XPath-expressie om de gemiddelde kosten van een rapport maken. XPath-expressie resulteert in een enkele waarde. Zie voor volledige informatie over XPath-syntaxis "XPath-syntaxis' in het gedeelte"Verwijzingen".
         // Find the average cost of a book.     // This expression uses standard XPath syntax.     strExpression = "sum(/bookstore/book/price) div count(/bookstore/book/price)";					
  8. Gebruik deEvaluerenmethode van deXPathNavigatorobject de XPath-expressie te evalueren. HetEvaluerenmethode voor het resultaat van de expressie.
        // Use the Evaluate method to return the evaluated expression.    Console.WriteLine("The average cost of the books are {0}", nav.Evaluate(strExpression));
  9. Maak een XPath-expressie zoeken alle rapporten die meer dan tien dollar kosten. XPath-expressie retourneert alleen titel knoop punten uit de XML-bron.
        // Find the title of the books that are greater then $10.00.    strExpression = "/bookstore/book/title[../price>10.00]";					
  10. Maak eenXPathNodeIteratorvoor de knoop punten die zijn geselecteerd met deSelecteermethode van deXPathNavigator. HetXPathNodeIteratorvertegenwoordigt een verzameling knoop punten XPath en ondersteunt daarom bewerkingen op deze verzameling knoop punten.
        // Select the node and place the results in an iterator.    NodeIter = nav.Select(strExpression);
  11. Gebruik deXPathNodeIterator, die is geretourneerd door deSelecteermethodeXPathNavigator, de geselecteerde knoop punten doorlopen. In dit geval kunt u deMoveNextmethode van deXPathNodeIteratoralle geselecteerde knoop punten doorloopt.
      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. Gebruik deReadLinemethode om een pauze toevoegen aan het einde van de console weergave kunnen de bovengenoemde resultaten weer te geven.
        // Pause    Console.ReadLine();					
  13. Bouwen en uitvoeren van uw project. Houd er rekening mee dat de resultaten weer in het consolevenster gegeven worden.
back to the top

Problemen oplossen

Wanneer u de code test, wordt het volgende foutbericht van de uitzondering weer gegeven:
Type "System.Xml.XmlException" een onverwerkte uitzondering opgetreden in System.xml.dll

Meer informatie: systeemfout.
De uitzonderingsfout optreedt op de volgende regel code:
docNav = new XPathDocument("c:\\books.xml");				
De uitzonderingsfout wordt veroorzaakt door een ongeldige verwerkingsinstructie. Zo kan de verwerkingsinstructie overbodige spaties bevat. Hier volgt een voorbeeld van een ongeldige verwerkingsinstructie:
<?xml version='1.0' ?>
Lost de uitzondering, op een van de volgende manieren:
  • Corrigeer de ongeldige verwerkingsinstructie. Hier volgt een voorbeeld van een ongeldige verwerkingsinstructie:
    <?xml version='1.0'?>
    -OF-
  • De XML-verwerkingsinstructie van het bestand Books. XML verwijderen.
back to the top
Referenties
Het volgende bestand wordt gedownload vanaf het Microsoft Download Center:
Ga naar de volgende Microsoft-websites voor meer informatie:Ga naar de volgende website van het World Wide Web Consortium (W3C) voor meer informatie over XPath:
XML Path-taal (XPath)
Versie 1. 0: W3C-aanbeveling 16 November 1999
http://www.w3.org/TR/1999/REC-XPath-19991116
back to the top

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 308333 - Laatst bijgewerkt: 02/28/2011 03:24:00 - Revisie: 2.0

Microsoft Visual C# 2008 Express Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbdownload kbhowtomaster kbmt KB308333 KbMtnl
Feedback