[talk-cz] Vracim se ke skriptu pro prevod na zjednoduseny XML z XML Overpass-turbo
Miloš Šmíd
smid.milos na gmail.com
Neděle Listopad 5 08:39:40 UTC 2023
Dobrý den,
bojuji se skriptem, který by mě měl na radu našeho kolegy převést xml z
overpass-turbo.eu do zjednodušeného formátu xml pro aplikaci Dot Walker
(pro nevidomé).
Nemám Linux a tak jsem se rozhodl stáhnout si CygWin, který umožňuje
spouštět linuxové skripty, doplnil ho knihovnou pro xlstproc, ale jak do
skriptu mám přidat informaci, z kterého xml souboru má provést konverzi?
Kam ho umístit nebo jak k němu skript navést, aby ho načetl?
Pro přiblížení - návod, který jsem zde získal:
Pokud jste dostali data ve formátu XML, budete je muset transformovat na
vámi požadovaný formát. K tomu můžete použít různé nástroje nebo skripty.
Jeden z jednoduchých způsobů je použití XSLT (Extensible Stylesheet
Language Transformations).
Zde je jednoduchý XSLT skript, který by mohl provést transformaci:
```xml
<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/osm">
<Route>
<xsl:for-each select="node[@k='highway' and @v='bus_stop']">
<Point>
<Title><xsl:value-of select="@name"/></Title>
<Lat><xsl:value-of select="@lat"/></Lat>
<Lng><xsl:value-of select="@lon"/></Lng>
<Description>stanice</Description>
</Point>
</xsl:for-each>
</Route>
</xsl:template>
</xsl:stylesheet>
```
Po Entru tedy spuštění skriptu to napíše:
-bash: xml: command not found
-bash: command substitution: line 2: syntax error near unexpected token
`newline'
-bash: command substitution: line 2: ` <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">'
-bash: $'~\E[200~': command not found
Můžete tento skript použít s jakýmkoli nástrojem, který podporuje XSLT,
například s `xsltproc` v příkazovém řádku.
Ještě se potýkám také s tím, že vyexportovaný např. kml z overpass-turbo.eu
má v sobě celou tabulku tagů - některým ani příliš nerozumím, i když jsem
se díval na Wikipedii co znamenají - konkrétně traffic_signals:direction
- jde o křižovatku, semafor a signál určující směr - možná to platí pro
nějakou situaci v zahraničí,
ale u nás jsou přece světelné semafory do obou směrů?
Děkuji za pomoc. Miloš
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://lists.openstreetmap.org/pipermail/talk-cz/attachments/20231105/e25778db/attachment.htm>
Další informace o konferenci talk-cz