NOTICE: help.openstreetmap.org is no longer in use from 1st March 2024. Please use the OpenStreetMap Community Forum

hello and good day dear xml-friends,

i am new to xml so do not bear with me for the questions... i am currently making some tests with an xslt-processor -

new: see the update i added at this initial-posting - for a solution i i copy the logic for the tag name... -> i added an example at the end of the initial-posting. plz lemme know your idas...thgx

new: see the update i added at this initial-posting - for a solution i i copy the logic for the tag name... -> i added an example at the end of the initial-posting. plz lemme know your idas...thgx

<xsl:stylesheet version = '1.0'
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

    <xsl:output method="text" encoding="UTF-8"/>
    <xsl:template match="/">

        <xsl:for-each select="/osm/node/tag[@k='amenity' and @v='restaurant']">
            <xsl:value-of select="../@id"/>
            <xsl:text>&#x09;</xsl:text>
            <xsl:value-of select="../@lat"/>
            <xsl:text>&#x09;</xsl:text>
            <xsl:value-of select="../@lon"/>
            <xsl:text>&#x09;</xsl:text>
            <xsl:for-each select="../tag[@k='name']">
            <xsl:value-of select="@v"/>
            </xsl:for-each>
            <xsl:text>&#x0A;</xsl:text>
        </xsl:for-each>
<xsl:for-each select="../tag[@k='website']">
    <xsl:value-of select="@v"/>
    </xsl:for-each>
    <xsl:text>&#x0A;</xsl:text>
    </xsl:template>
</xsl:stylesheet>

Note: this above mentioned solution does not give any iadditional infos - so the website is NOT shown. what is wrong here!?

here the initial posting starts.

i run this on terminal to parse the xml-document

Question: what i want is to enlarge the xslt-processor with the following tags

wheelchair
website    
addr:country
addr:street
addr:city
addr:housenumber
  • see more details in a example here ...:

    <tag k="addr:postcode" v="73614"/> <tag k="wheelchair" v="yes"/> <tag k="website" v="www.kesselhaus-schorndorf.de"/> <tag k="addr:country" v="DE"/> <tag k="name" v="Kesselhaus"/> <tag k="amenity" v="restaurant"/> <tag k="addr:street" v="Arnoldstraße"/> <tag k="addr:city" v="Schorndorf"/> <tag k="addr:housenumber" v="3"/>

i run the following code: time xsltproc test3.xslt testdoc3.xml > restaurants-004.csv

<xsl:stylesheet version = '1.0'
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

    <xsl:output method="text" encoding="UTF-8"/>
    <xsl:template match="/">

        <xsl:for-each select="/osm/node/tag[@k='amenity' and @v='restaurant']">
            <xsl:value-of select="../@id"/>
            <xsl:text>&#x09;</xsl:text>
            <xsl:value-of select="../@lat"/>
            <xsl:text>&#x09;</xsl:text>
            <xsl:value-of select="../@lon"/>
            <xsl:text>&#x09;</xsl:text>
            <xsl:for-each select="../tag[@k='name']">
            <xsl:value-of select="@v"/>
            </xsl:for-each>
            <xsl:text>&#x0A;</xsl:text>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

....on this xml-document - which is called testdoc3.xml

<?xml version='1.0' encoding='UTF-8'?>
<osm version="0.6" generator="Osmosis SNAPSHOT-r26564">
  <node id="185612117" version="5" timestamp="2011-01-08T19:23:43Z" uid="290680" user="wheelmap_visitor" changeset="6906586" lat="48.8037523" lon="9.5248779">
    <tag k="addr:postcode" v="73614"/>
    <tag k="wheelchair" v="yes"/>
    <tag k="website" v="http://www.courage-restaurant.de/"/>
    <tag k="addr:country" v="DE"/>
    <tag k="name" v="Courage"/>
    <tag k="amenity" v="restaurant"/>
    <tag k="addr:street" v="Künkelinstraße"/>
    <tag k="addr:city" v="Schorndorf"/>
    <tag k="addr:housenumber" v="33"/>
  </node>
  <node id="252619189" version="5" timestamp="2011-01-08T19:21:43Z" uid="290680" user="wheelmap_visitor" changeset="6906586" lat="48.8067032" lon="9.5314986">
    <tag k="addr:postcode" v="73614"/>
    <tag k="wheelchair" v="yes"/>
    <tag k="website" v="www.kesselhaus-schorndorf.de"/>
    <tag k="addr:country" v="DE"/>
    <tag k="name" v="Kesselhaus"/>
    <tag k="amenity" v="restaurant"/>
    <tag k="addr:street" v="Arnoldstraße"/>
    <tag k="addr:city" v="Schorndorf"/>
    <tag k="addr:housenumber" v="3"/>
  </node>
  <node id="319597380" version="1" timestamp="2008-12-17T21:13:15Z" changeset="444629" lat="48.8277913" lon="9.5477029">
    <tag k="name" v="Gasthaus zur Linde"/>
    <tag k="amenity" v="restaurant"/>
  </node>
  <node id="319597382" version="1" timestamp="2008-12-17T21:13:15Z" changeset="444629" lat="48.8282523" lon="9.5503109">
    <tag k="name" v="China-Garden"/>
    <tag k="amenity" v="restaurant"/>
  </node>
  <node id="339591124" version="2" timestamp="2011-09-22T17:33:36Z" uid="290680" user="wheelmap_visitor" changeset="9366746" lat="48.7888015" lon="9.5079525">
    <tag k="cuisine" v="italian"/>
    <tag k="wheelchair" v="limited"/>
    <tag k="name" v="Pizzeria da Rocco"/>
    <tag k="amenity" v="restaurant"/>
  </node>
  <node id="392682646" version="3" timestamp="2010-05-11T19:00:20Z" uid="12973" user="MattGPS" changeset="4671372" lat="48.8315734" lon="9.5468864">
    <tag k="name" v="Gasthaus an der Wieslauf"/>
    <tag k="amenity" v="restaurant"/>
  </node>
  <node id="454516720" version="4" timestamp="2010-12-11T15:30:21Z" uid="12982" user="Michael Schulze" changeset="6625571" lat="48.8031264" lon="9.5344371">
    <tag k="addr:postcode" v="73614"/>
    <tag k="cuisine" v="regional"/>
    <tag k="website" v="http://www.deutscheshaus-schorndorf.de/"/>
    <tag k="addr:country" v="DE"/>
    <tag k="name" v="Deutsches Haus"/>
    <tag k="amenity" v="restaurant"/>
    <tag k="addr:street" v="Sonnenscheinstraße"/>
    <tag k="addr:city" v="Schorndorf"/>
    <tag k="addr:housenumber" v="13"/>
  </node>
  <node id="572362430" version="3" timestamp="2010-07-04T06:59:50Z" uid="106522" user="neuntoeter" changeset="5130101" lat="48.807953" lon="9.5379673">
    <tag k="smoking" v="no"/>
    <tag k="name" v="Club Kneipe"/>
    <tag k="amenity" v="restaurant"/>
  </node>
  <node id="613988559" version="1" timestamp="2010-01-15T01:20:03Z" uid="24748" user="mabapla" changeset="3621550" lat="48.7991827" lon="9.551828">
    <tag k="name" v="Gaststätte Schützenhaus"/>
    <tag k="amenity" v="restaurant"/>
  </node>
  <node id="859532091" version="1" timestamp="2010-08-13T23:05:14Z" uid="130472" user="fx99" changeset="5486736" lat="48.8062337" lon="9.5278548">
    <tag k="website" v="http://www.weinstube-buechsenmacher.de/"/>
    <tag k="name" v="Weinstube zum Büchsenmacher"/>
    <tag k="amenity" v="restaurant"/>
    <tag k="addr:housename" v="5"/>
    <tag k="addr:street" v="Höllgasse"/>
  </node>
  <node id="1625565012" version="1" timestamp="2012-02-09T18:00:04Z" uid="131968" user="changchun_1" changeset="10636279" lat="48.8151893" lon="9.5310692">
    <tag k="name" v="Gasthaus Sonne"/>
    <tag k="amenity" v="restaurant"/>
  </node>
</osm>

i get back these results - and yes: i want to enlarge it with the above mentioned tags...

185612117   48.8037523  9.5248779   Courage
252619189   48.8067032  9.5314986   Kesselhaus
319597380   48.8277913  9.5477029   Gasthaus zur Linde
319597382   48.8282523  9.5503109   China-Garden
339591124   48.7888015  9.5079525   Pizzeria da Rocco
392682646   48.8315734  9.5468864   Gasthaus an der Wieslauf
454516720   48.8031264  9.5344371   Deutsches Haus
572362430   48.807953   9.5379673   Club Kneipe
613988559   48.7991827  9.551828    Gaststätte Schützenhaus
631421882   48.8070643  9.5437351   Remstalstuben
672817732   48.8045127  9.5254423   Hanti Alem
677555759   48.8048108  9.5243952   Weinstube St. Urban
677578941   48.8052132  9.5246951   Bei Domenico
677578944   48.8055998  9.5261987   Little Saigon

again the wanted tags that enlarge the xslt-preprocessor are the following ones...

wheelchair
website    
addr:country
addr:street
addr:city
addr:housenumber

thx for any and all help - thx in advance

greetigngs

update- i do it liek so - in copying the logic for the tag name - eg to add the tag for website:

<xsl:for-each select="../tag[@k='website']">
    <xsl:value-of select="@v"/>
    </xsl:for-each>
    <xsl:text>&#x0A;</xsl:text>
</xsl:for-each>

what you say!?

asked 21 Apr '12, 15:53

tagtheworld's gravatar image

tagtheworld
0889
accept rate: 0%

edited 21 Apr '12, 16:40

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×362
×84
×5

question asked: 21 Apr '12, 15:53

question was seen: 4,770 times

last updated: 21 Apr '12, 16:40

NOTICE: help.openstreetmap.org is no longer in use from 1st March 2024. Please use the OpenStreetMap Community Forum