Gjest Skrevet 29. november 2011 Del Skrevet 29. november 2011 Må være minst to stykker her inne som har hørt om XML nå da Jeg vet dessverre ikke løsningen på svaret over, men lurte på noe annet - relatert til XML/XQuery/XPath. Har en XML fil (se under). Spørsmålet er følgende: Finn personen(e) som er oppført flest ganger som forfatter/redaktør (author/editor). Forsøkte først med å bruke XPath, men fikk det ikke helt til å virke. Må sikkert ha en Query FLOWR spørring her. Den bør telle opp forekomster av identisk forfatter/redaktør og returnere den som er oppført flest ganger. Noen som kan hjelpe? <?xml version="1.0" encoding="UTF-8"?> <?oxygen RNGSchema="file:textbook.rnc" type="compact"?> <books xmlns="books"> <book ISBN="i0321165810" publishername="OReilly"> <title>XPath</title> <author> <name> <fname>Priscilla</fname> <lname>Warnley</lname> </name> <address> <street_address>Hill Park</street_address> <zip>90210</zip> <state>california</state> </address> <phone>00000000</phone> <e-mail>[email protected]</e-mail> </author> <editor> <name> <fname>Lisa</fname> <lname>Williams</lname> </name> </editor> <year>2007</year> <field>Databases</field> <TOC> <component> <type>Part</type> <title>Xpath</title> <component> <title>Chapter... A tour of xquery</title> <pages>3</pages> <component> <title>Introductions</title> </component> <component> <title>Getting started</title> </component> </component> </component> </TOC> </book> <book ISBN="i0321165812" publishername="OReilly"> <title>XQuery</title> <editor> <name> <fname>Lisa</fname> <lname>Williams</lname> </name> </editor> <year>2003</year> <field>Databases</field> <TOC> <component> <type>Part</type> <title>Xpath</title> <component> <title>Chapter... A tour of xquery</title> <pages>3</pages> <component> <title>Introductions</title> </component> <component> <title>Getting started</title> </component> </component> </component> </TOC> </book> <publisher publishername="OReilly"> <web-site>www.oreilly.com</web-site> <address> <street_address>hill park</street_address> <zip>90210</zip> <state>california</state> </address> <phone>400400400</phone> <e-mail>[email protected]</e-mail> <contact> <field>Databases</field> <name> <fname>Anna</fname> <lname>Smith</lname> </name> </contact> </publisher> </books> På forhånd, tusen takk. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 29. november 2011 Del Skrevet 29. november 2011 Har ikke tid til å studere den koden. Skaff dere XML "bibelen". http://www.apress.com/9781590596333 Se også: http://www.forumnorway.com/ under kagegorien: XML, CSS and related technologies Lenke til kommentar
Gjest Skrevet 29. november 2011 Del Skrevet 29. november 2011 Takk for svaret, kgun, men det ser ikke ut til at bibelen din dekker XQuery FLOWR spørringer (kun det mest grunnleggende om XQuery teknologien). Lenke til kommentar
Gjest Slettet+9871234 Skrevet 29. november 2011 Del Skrevet 29. november 2011 Takk for svaret, kgun, men det ser ikke ut til at bibelen din dekker XQuery FLOWR spørringer (kun det mest grunnleggende om XQuery teknologien). Den dekker XQuery, men ikke XQuery FLOWR som jeg aldri har hørt om. Hva er det? Boken diskuterer også en rekke XML parsere, så jeg antar at problemet ditt er enkelt om du takler dem. Det er år siden jeg leste den boken nesten fra perm til perm, så jeg kan ikke gi deg en rask løsning. Google: XML OR XPointer OR XLink OR XPath OR XML Schema kgun site:www.sitepoint.com eller XML OR XPointer OR XLink OR XPath OR XML Schema kgun site:www.webproworld.com P.S. For øvrig ser det ut til at HTML5 og CSS3 tar av og at XML teknologier devalueres når det gjelder webutvikling. For store firmaer som trenger streng dokument behandling er selvsag XML viktig. Lenke til kommentar
Gjest Skrevet 29. november 2011 Del Skrevet 29. november 2011 (endret) FLOWR står for: For, let, order by, where, return. Spørringene minner litt om SQL, men virker generelt mer tungvindte og kompliserte å skrive. For eksempel kan dette være en (enkel) spørring som finner forlag som har gitt ut bøker om databaser og programmering: declare default element namespace "fagboksamling"; for $f in doc("fagbokdatabase.xml")//forlag where $f/@forlagnavn = //bok[fagfelt='Programmering']/@forlagnavn and $f/@forlagnavn = //bok[fagfelt='Databaser']/@forlagnavn return $f/data(@forlagnavn) Har brukt en del tid på å finne relevante XQuery ressurser og ser at det finnes ikke så mange av dem. Men uheldigvis er det denne teknologien Universitetet i Bergen har valgt i det ene databasefaget sitt (INFO123), hvor det for tiden nærmer seg eksamen. Parseren som benyttes er Oxygen XML. Fungerer bra den, men gjør ikke en uerfaren programmerer så mye flinkere til å formulere kompliserte spørringer Så hvis noen andre har noen forslag så hadde jeg satt veldig pris på det Endret 29. november 2011 av Gjest Lenke til kommentar
Gjest Slettet+9871234 Skrevet 29. november 2011 Del Skrevet 29. november 2011 (endret) Er ikke XPath foretrukket fremfor XQuery? Har du undersøkt om den enkleste parseren XMLReader http://www.php.net/manual/en/book.xmlreader.php kan hjelpe deg. Merk også de andre XML parserne hvor DOM XML er mest generell og også bruker mest overhead om jeg husker riktig. Ta også en rask titt nedover på denne http://www.web2logistics.com/ siden som jeg laget for noen år tilbake. Generelt, googler du XML parser ... får du sikkert mange treff. Der er en rekke native slike parsere. For øvrig antar jeg at JavaScript bibiloteker http://javascriptlibraries.com/ som for eksempel jQuery kan hjelpe deg: http://jquery.com/ Utvikler du stier for mobile plattformer er dette http://zeptojs.com/ biblioteket kanskje en fordel, da det bruker mindre ressurser. Personlig ville jeg begynt med http://api.jquery.com/jQuery.parseXML/ og sett have som kan gjøres med jQuery. Google: jquery xml for ytterligere informasjon. Dernest ville jeg prøvd enkle PHP parsere som XMLreader. Endret 29. november 2011 av Slettet+9871234 Lenke til kommentar
Gjest Skrevet 29. november 2011 Del Skrevet 29. november 2011 Takk for tipsene, men jeg er godt fornøyd med Oxygen parseren. Trenger bare litt hjelp til å formulere en FLOWR spørring (fortrinnsvis hjelp fra et menneske som vil kunne forklare hvorfor det er slik), som jeg kan kjøre i parseren (mot det vedlagte XML dokumentet i den første posten). Teknologien som er pensum er XQuery 1.0. Har som sagt et begrenset pensum jeg må lære meg før eksamen, så å se på mobil utvikling får jeg heller gjøre når det er ferietid Gitt at det er mulig å formulere en spørring via XPath er det og foretrekke. Men for mer komplekse spørringer, der XPath ikke er i stand til å gjøre jobben, er det naturlig å ta i bruk XQuery. XPath er en del av XQuery, og XQuery utvider XPath. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 29. november 2011 Del Skrevet 29. november 2011 (endret) Gitt at det er mulig å formulere en spørring via XPath er det og foretrekke. Men for mer komplekse spørringer, der XPath ikke er i stand til å gjøre jobben, er det naturlig å ta i bruk XQuery. XPath er en del av XQuery, og XQuery utvider XPath. Siden det er mange år siden jeg var borti dette stoffet har du kanskje rett. Men jeg trodde: XPath kan gjøre stort sett det samme som XQuery. XPath er den teknologien det satses på. XPath 2.0 http://www.w3.org/TR/xpath20/ er en generalisering. Men siden jeg jobbet med dette kan ting ha endret seg og muligens er siste versjon av XQuery en supermengde av XPath i dag. For øvrig var (er?) XPath + XPointer ment å passe som hånd i hanske. Jeg vet ikke om det samme kan sies om XQuery. Dersom jeg husker riktig, bruker man noen ganger XPath til å følge en sti til målet angitt ved XPointer. Få eller ingen nettlesere jeg vet om har satset på XML sin lenke teknologi XLink. Egentlig synd da den åpner for ekte transklusjon http://en.wikipedia.org/wiki/Transclusion. Endret 29. november 2011 av Slettet+9871234 Lenke til kommentar
MikkelRev Skrevet 1. desember 2011 Del Skrevet 1. desember 2011 @kgun xml-parser for php, jquery xml-parser og html5, hva har det med XQuery å gjøre? Strengt tatt kunne denne tråden stått i hvilket som helst underforum i programmeringsforumet. Har dessverre ikke løsningen da jeg er helt fersk i XQuery selv. xquery version "1.0"; <books> { for $book in (doc("books.xml")/books/book) let $author:=concat($book/author/name/fname/text(), " ",$book/author/name/lname/text()) let $editor:=concat($book/editor/name/fname/text(), " ",$book/editor/name/lname/text()) return element person { element author {$author}, element editor {$editor} } } </books> Koden over gir dette resultatet: <?xml version="1.0" encoding="UTF-8"?> <books> <person> <author>Priscilla Warnley</author> <editor>Lisa Williams</editor> </person> <person> <author> </author> <editor>Lisa Williams</editor> </person> </books> Det du vil ha er altså Lisa Williams. Prøv å få alle editor'ene og author'ene inni én sekvens. Deretter bruke count() på hver item i sekvensen for å se hvor mange ganger item'en (dvs personen) forekommer. Deretter kan du bruke max() for å finne høyeste verdi, eller sortere de etter count(), også hente ut siste. Si fra om du får det til Kom over en link med en som prøver å gjøre noe tilsvarende der Michael Kay himself svarer: http://www.x-query.com/pipermail/talk/2006-August/001636.html Lenke til kommentar
Gjest Slettet+9871234 Skrevet 2. desember 2011 Del Skrevet 2. desember 2011 @kgun xml-parser for php, jquery xml-parser og html5, hva har det med XQuery å gjøre? Strengt tatt kunne denne tråden stått i hvilket som helst underforum i programmeringsforumet. Ja hvorfor tror du jeg skrev det jeg skrev? Opprinnelig post der det spurtes etter XML teknologier ble slettet. Lenke til kommentar
MikkelRev Skrevet 2. desember 2011 Del Skrevet 2. desember 2011 @kgun xml-parser for php, jquery xml-parser og html5, hva har det med XQuery å gjøre? Strengt tatt kunne denne tråden stått i hvilket som helst underforum i programmeringsforumet. Ja hvorfor tror du jeg skrev det jeg skrev? Opprinnelig post der det spurtes etter XML teknologier ble slettet. Var jeg som startet opprinnelig post, så jeg har sett hele tråden før første delen ble slettet av mod. Så ingen relevans til HTML5 og XML-parsing med php og jquery. OT: det finnes enklere måter å løse det på enn den koden min fra igår. Hint er at xpath'en doc("books.xml")//name henter navn uavhengig av om navn er en author eller editor. Se også på funksjonen deep-equal() som kan sammenligne en gruppe av elementer med en annen gruppe av elementer. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 2. desember 2011 Del Skrevet 2. desember 2011 Var jeg som startet opprinnelig post, så jeg har sett hele tråden før første delen ble slettet av mod. Så ingen relevans til HTML5 og XML-parsing med php og jquery. Det er det jo lett å påstå nå når hele diskusjonen i denne tråden er usemantisk. Opprinnelig tråd omhandlet en tema om xml teknologier. Jeg oppfattet det som et forslag til en levende tråd analogt med denne: https://www.diskusjon.no/index.php?showtopic=800754 Det er ikke et stor poeng for meg, men jeg skal være mer varsom neste gang jeg poster i en ny tråd Lenke til kommentar
MikkelRev Skrevet 2. desember 2011 Del Skrevet 2. desember 2011 Du henvendte deg jo direkte til yunapjuna som hadde spørsmål om XQuery. Neida, ingen fare. Tørk heller støvet av XML-bibelen din du og bla opp på kapittelet om XQuery Lenke til kommentar
Gjest Slettet+9871234 Skrevet 2. desember 2011 Del Skrevet 2. desember 2011 Absolutt ikke. HTML5 og CSS3 er mitt fokus for tiden. Lenke til kommentar
Gjest Skrevet 4. desember 2011 Del Skrevet 4. desember 2011 Takk for svaret MikkelRev, så ikke notify før nå, sikkert fordi spørsmålet ble flyttet. Fikk til et svar som ga den første med høyeste count, men skal ta en ny titt på det før eksamen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå