親愛なる xml-friends さん、こんにちは。
私は xml を初めて使用するので、質問に答えないでください... 現在、xslt プロセッサを使用していくつかのテストを行っています -
新規:この最初の投稿で追加した更新を参照してください- 解決策については、タグ名のロジックをコピーしてください... -> 最初の投稿の最後に例を追加しました。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>	</xsl:text>
<xsl:value-of select="../@lat"/>
<xsl:text>	</xsl:text>
<xsl:value-of select="../@lon"/>
<xsl:text>	</xsl:text>
<xsl:for-each select="../tag[@k='name']">
<xsl:value-of select="@v"/>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:for-each>
<xsl:for-each select="../tag[@k='website']">
<xsl:value-of select="@v"/>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
注:この上記の解決策では、追加の情報は提供されないため、Web サイトは表示されません。ここで何が問題なのですか!?
ここで最初の投稿が始まります。
これを端末で実行して、xml-document を解析します
質問: 私が望むのは、次のタグを使用して xslt-processor を拡大することです
wheelchair
website
addr:country
addr:street
addr:city
addr:housenumber
詳細については、こちらの例を参照してください ...:
次のコードを実行します: 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>	</xsl:text>
<xsl:value-of select="../@lat"/>
<xsl:text>	</xsl:text>
<xsl:value-of select="../@lon"/>
<xsl:text>	</xsl:text>
<xsl:for-each select="../tag[@k='name']">
<xsl:value-of select="@v"/>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
....この xml-documentで - 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>
私はこれらの結果を取り戻します-そしてはい:上記のタグで拡大したいです...
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
繰り返しますが、xslt-preprocessor を拡大する必要なタグは次のとおりです...
wheelchair
website
addr:country
addr:street
addr:city
addr:housenumber
あらゆるヘルプのためのthx - 事前にthx
ご挨拶
更新-私はそうします-タグ名のロジックをコピーする-たとえば、Webサイトのタグを追加するには:
<xsl:for-each select="../tag[@k='website']">
<xsl:value-of select="@v"/>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:for-each>
あなたが言うこと!?