Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 75|Antwoord: 0

Gebruik XPath om XML- en HTML-documentinhoud op te halen

[Link kopiëren]
Geplaatst op3 dagen geleden | | | |
XPath is een technologie die nauwkeurig en efficiënt de benodigde informatie specificeert en extraheert uit boomstructuurgegevens, zoals HTML en XML.

XPath Overzicht

XPath is een taal die wordt gebruikt om specifieke elementen en attributen te specificeren en te extraheren in een XML- of HTML-documentboom. Omdat webpagina's vaak uit HTML bestaan, wordt XPath veel gebruikt in verschillende scenario's, zoals web scraping, gegevensopvraging en XML-datazoekopdracht.

Typisch gebruik is als volgt:

  • Data-extractie in webcrawlers: XPath wordt gebruikt om automatisch specifieke gegevens op te halen, zoals productinformatie op e-commerce websites of artikeltitels op nieuwssites.
  • XML Data Search and Processing: In bedrijfssystemen en datalinkverwerking worden gegevens vaak uitgewisseld in XML-formaat. Door XPath te gebruiken, kun je efficiënt de benodigde informatie extraheren uit grote hoeveelheden XML-data.
  • API-antwoorden parsen (XML-formaat): Bij gebruik van XML-gebaseerde API's, zoals SOAP, wordt XPath gebruikt om responsgegevens te parsen. Hierdoor kunt u snel specifieke statuscodes en resultaatgegevens verkrijgen, waardoor de nauwkeurigheid van systeemintegratie en geautomatiseerde verwerking verbetert.

Gereedschapsaanbeveling

Tijdens het leren en gebruiken van XPath zijn veelvoorkomende hulpmiddelen onder andere:

Chrome Developer Tools: Een krachtige tool die bij de Chrome-browser wordt geleverd, je kunt hem oproepen door op de F12-toets te drukken. In het paneel "Elements" kun je snel HTML-elementen op een webpagina vinden door te bewegen en te klikken, en door met de rechtermuisknop op een element te klikken kun je direct de XPath-expressie kopiëren voor eenvoudige verificatie en testen. Bijvoorbeeld, bij het analyseren van een e-commerce productpagina kun je Chrome-ontwikkeltools gebruiken om snel XPath te verkrijgen voor productnamen, prijzen en andere elementen.
Firefox Developer Tools: Wordt ook geleverd met de browser, vergelijkbaar met Chrome Developer Tools. Het stelt je ook in staat om eenvoudig elementen op je pagina te vinden, evenals om XPath-expressies te bekijken en te testen. Dit is een goede optie voor ontwikkelaars die gewend zijn aan het gebruik van de Firefox-browser.
Online XPath-testtools: Online tools zoals "XPath Tester" kunnen zonder installatie worden gebruikt en kunnen worden gebruikt door een webpagina te openen. Plak simpelweg de inhoud van een XML- of HTML-document, voer een XPath-expressie in en zie de matchresultaten in realtime. Deze tool is vooral geschikt voor beginners om snel te beginnen en eenvoudige XPath-oefeningen te doen.
XPath Helper Plugin: Neem Chrome Browser als voorbeeld: na het installeren van de XPath Helper-plugin voegt het een zwevend venster toe aan de browserinterface tijdens het surfen op het web, waarbij het XPath-pad van het huidige muis-over-element wordt weergegeven, en je kunt XPath-expressies direct in het venster bewerken en testen, wat de ontwikkelingsefficiëntie aanzienlijk verbetert.

XPath Abstracte Syntaxis

Selecteer een knoop

XPath gebruikt padexpressies om knopen te kiezen in een XML-document. Knooppunten worden geselecteerd door een pad of stap te volgen. De meest bruikbare padexpressies worden hieronder vermeld:
uitdrukking
beschrijving
KnoopnaamKiest alle kindknooppunten van deze knoop.
/Kies uit de wortelknoop (neem de kindknoop).
//Selecteert knooppunten in het document uit de huidige knoop van de overeenkomstige selectie, ongeacht hun locatie (neem afstammende knooppunten).
.Kies de huidige node.
..Kies de ouderknoop van de huidige knoop.
@Kies een attribuut.

In de onderstaande tabel hebben we enkele padexpressies opgesomd samen met de resultaten van de expressies:
Padexpressies
resultaat
boekhandelKies alle knooppunten met de naam boekwinkel.
/bookstore
Kies de root-element boekwinkel.
Opmerking: Als het pad begint met een voorwaartse slash ( / ), dan vertegenwoordigt dit pad altijd een absoluut pad naar een element!
Boekwinkel/boekKiest alle boekelementen die kindelementen van de boekwinkel zijn.
//bookKiest alle boek-subelementen, ongeacht hun positie in het document.
Boekwinkel//boekSelecteer alle boekelementen die afstammelingen zijn van het boekwinkelelement, ongeacht waar ze zich onder de boekwinkel bevinden.
@langKies alle eigenschappen die lang heeten.

Predikaten

Een predicaat wordt gebruikt om een specifieke knoop te vinden of een knoop met een bepaalde waarde.
Het predicaat is ingebed in vierkante haken.
In de onderstaande tabel geven we een lijst van enkele padexpressies met predicaten, en de resultaten van de uitdrukkingen:
Padexpressies
resultaat
/bookstore/book[1]Kies het eerste boekelement dat deel uitmaakt van het boekwinkel-kindelement.
/bookstore/book[last()]Kiest het laatste boekelement dat deel uitmaakt van het boekwinkel-subelement.
/bookstore/book[last()-1]Kiest het voorlaatste boekelement dat tot het boekwinkel-kindelement behoort.
/bookstore/book[position()<3]Kies de eerste twee boekelementen die kindelementen zijn van het boekwinkelelement.
titel[@lang]Kiest alle titelelementen die een eigenschap hebben genaamd lang.
titel[@lang='eng']Kiest alle titelelementen die een lang-attribuut hebben met een eng-waarde.
/bookstore/book[price>35.00]Kiest alle boekelementen van het boekwinkelelement, en de waarde van het prijselement moet hoger zijn dan 35,00.
/bookstore/book[price>35.00]//titleKiest alle titelelementen van het boekelement in het boekwinkelelement, en de waarde van het prijselement moet hoger zijn dan 35,00.

Selecteer een onbekende knoop

XPath wildcards kunnen worden gebruikt om onbekende XML-elementen op te pikken.
jokerteken
beschrijving
*Komt overeen met elke elementknoop.
@*Komt overeen met elke attribuutknoop.
node()Komt overeen met elk type knooppunt.

In de onderstaande tabel geven we enkele padexpressies en de resultaten van deze expressies op:
Padexpressies
resultaat
/bookstore/*Kiest alle kindelementen van het boekwinkel-element.
//*Kiest alle elementen uit het document.
titel[@*]Kiest alle titelelementen met attributen.

Kies een aantal paden

Door "|" te gebruiken in de paduitdrukking Operators, je kunt verschillende paden kiezen.

In de onderstaande tabel geven we enkele padexpressies en de resultaten van deze expressies op:
Padexpressies
resultaat
//book/title | //book/priceKiest alle titel- en prijselementen van het boekelement.
titel | prijsKies alle titel- en prijselementen in het document.
/bookstore/book/title | //priceKiest alle titelelementen van het boekelement die tot het boekwinkelelement behoren, en alle prijselementen in het document.

XPath-functie

Hieronder volgt een gecommenteerde lijst van XPath-specifieke toevoegingen aan XPath door kernfuncties van XPath en XSLT, inclusief beschrijvingen, syntaxis, parameterlijsten, resultaattypes en bronnen in de bijbehorende W3C-aanbevelingen.

  • Boolean()
  • plafond()
  • choose()
  • concat()
  • bevat()
  • count()
  • huidig() XSLT-specifiek
  • document() XSLT-specifiek
  • element-available()
  • false()
  • vloer()
  • format-number() XSLT-specifiek
  • function-available()
  • generate-id() XSLT-specifiek
  • id()
  • key() XSLT-specifiek
  • lang()
  • Laatste()
  • local-name()
  • naam()
  • namespace-uri()
  • normaliseer-ruimte()
  • not()
  • number()
  • positie()
  • rond()
  • begint-met()
  • string()
  • string-length()
  • Substring()
  • substring-after()
  • substring-voor()
  • sum()
  • system-property() XSLT-specifiek
  • vertal()
  • true()
  • unparsed-entity-url() XSLT specifiek

Praktische toetsen

Open Chrome en krijg de tekstinhoud van alle A-tabbladlinks met het volgende commando:
Zoals hieronder getoond:



Referentie:De hyperlink-login is zichtbaar.




Vorig:[Toneelschrijver] (3) Geautomatiseerd testen om foutuitzonderingen te detecteren
Volgend:.NET/C# roept de Azure Translator tekstvertaalinterface service aan
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com