Innholdsfortegnelse:
Video: Covered in solid tar puppies trapped in their own bodies, only their eyes could move, rescued 2025
Dikotomi mellom lineær tenkning og holistisk tenkning skiller (henholdsvis) SAX fra DOM.
SAX (Simple API for XML) behandler et XML-dokument lineært, og arbeider gjennom et dokument stykke fra stykke, fra begynnelse til slutt. Men med DOM (Document Object Model), hopper du inn og ser på hele dokumentet. Litt senere zoomer du inn på rotelementet, og fokuserer deretter nærmere på et element i rotelementet. I noen situasjoner er det å hoppe inn akkurat hva du trenger å gjøre.
DOM noder
Med DOM, tenker du på et XML-dokument som å ha flere noder . Eksempler på noder inkluderer elementer, attributter, kommentarer og tegnene mellom et par start- og sluttkoder. Et helt XML-dokument er i seg selv en node. Alt i alt kan et XML-dokument ha 12 forskjellige typer noder.
Nødene til et tre
Samlet sett danner alle DOM nodene i et XML-dokument et tre. Ta for eksempel dokumentet i liste 1. Dette dokumentets DOM-tre ser ut som treet som vises i figur 1.
Liste 1: Anchovy Lovers Club
Grunnlegger, president, sekretær, publiseringsleder
Træret har elleve noder. For å telle dem, begynn med å telle treets grener (vist på fig. 1). Tell deretter medlemmets fornavn = "Herbert" -gren en gang til. (Denne grenen har to DOM noder på den. Elementet som heter Medlem er en node, og elementets attributt fornavn = "Herbert" er en node.)
En avhandling på trær
Det er noen ting du vil oppdage ved å stirre på treet i figur 1.
- Noen noder er barn av andre noder. For eksempel er medlemskoden et barn av AnchovyLoversClub-noden. Det skyldes at i element 1 er medlemelementet nestet inne i AncoverLoversClub-elementet.På samme måte er Stående knutepunkt et barn i medlemskoden. Denne familieanalogen går videre og igjen. Medlemskoden er forelder av Stående knutepunkt, og AncoverLoversClub er forelder til medlemskoden.
- Hele dokumentet er en node. Dette er et viktig poeng, og det er lett å glemme. I liste 1 er dokumentets rotelement elementet AnchovyLoversClub. Men i figur 1 er navnet AnchovyLoversClub ikke øverst på treet. I stedet er ordet #document øverst på treet.En DOM-treets øverste node representerer et helt XML-dokument. Feil oppstår når programmererne mener at dokumentets rotelement starter treet.(Det gjør det ikke.)
- Kommentarer og tekststykker er noder. I figur 1 er kommentaren en barnekode for dokumentknuten. Det er fordi i kommentar 1 er kommentaren en del av dokumentet. Kommentaren er ikke nestet i noen av dokumentets elementer.Igjen spiller vi slektsforskning. Vi sier at #document node har to barn - en kommentar node og en AnchovyLoversClub node. Disse to noder - kommentaren og AnchovyLoversClub - kalles søsken .Også i figur 1 er teksten grunnlegger, president, sekretær, publiseringsleder en del av en knutepunkt. I liste 1 er teksten grunnlegger, president, sekretær, publisitetsansvarlig inne i det stående elementet. Så, i figur 1, er denne tekstnoden et barn av Stående knutepunkt.
- Selv ekte tekst er en del av en node. I følge figur 1 har AnchovyLoversClub-noden tre direkte barnnoder - to noder merket #text, og et annet node-merket medlem. Det er fordi, for så vidt angår DOM, har AnchovyLoversClub-noden tre ting i den.
Vognretur og tre blanker
Medlemselement
Vognretur
-
Situasjonen er illustrert i figur 2.
-
De tre barn av medlemskoden - to stykker av hvite rom og ett stående element - er alle søsken.Legg merke til prikkene og [cr] i figurene 1 og 2. I trediagrammet representerer en prikk et tomrom, og [cr] representerer en vognretur. Med DOM begynner all den uhyggelige hvite plass mellom AnchovyLoversClub-taggen og medlemstarttaggen en node. Fra vinkelbraketten som avslutter AnchovyLoversClub start-taggen, går du til neste linje, og du har tre tomme mellomrom før vinkelbeslaget som åpner medlemstartet. Alt dette er en DOM-node.
- Sluttkoder er ikke noder. Med SAX, kan du tenke på å starte medlemselementet, og senere avslutte medlemselementet. I DOM tror du ikke på denne måten. I stedet besøker du medlemselementet bare en gang. Innenfor besøket besøker du Stående elementet og litt tekst. DOM har ingen metode som svarer til SAX endElement-metoden.
