2012-04-21 4 views
0

こんにちは、良い一日親愛なるXML-友人、私は質問のために私と一緒に負担していないので、XMLに新しいですXSLTプロセッサに新しいXML要素を追加 - 初心者の事を

...私は現在、午前XSLTプロセッサでいくつかのテストを行う -

新しい:私はこの最初のポスティングに追加更新を参照してください - 溶液IIのためのタグ名のためのロジックをコピー... - >私は例を追加しました最初の投稿の終わりに。この上記のソリューションは、あらゆるiadditionalに関する情報を与えない - そうウェブサイトはを示していないです:plzはレムは... 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> 

注意をごIDASを知っています。何がここに間違っている!?

ここでは、最初の転記が開始されます。

私は、XML文書

質問解析するために、端末上でこれを実行します。私がしたいことは、次のタグ

wheelchair 
website  
addr:country 
addr:street 
addr:city 
addr:housenumber 
  • とXSLTプロセッサを拡大することであるが、より多くの詳細を表示しますここの例では...:

私は、次のコードを実行します。このXMLドキュメントに....時間xsltprocのtest3.xslt testdoc3.xml>レストラン-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> 

-

<?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> 
testdoc3.xml と呼ばれています

...再びXSLTプリプロセッサを拡大指名手配タグは以下のものです

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 

...私は上記のタグでそれを拡大したい:はい - 私は戻って、これらの結果を得る0

任意およびすべてのヘルプのための

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

THX - 事前にTHX

greetigngs

アップデート - タグ名ためのロジックをコピーするには - - 私はそれはとてもliek行うウェブサイトのためのタグを追加する例:

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

あなたが言うことを!?

+0

はあなただけのタグ 'するためのロジックをコピーしない理由は何らかの理由がある[K @ = 'name'] '? – erikxiv

+0

おやすみなさい。私はxmlに新しいですが、あなたが正しいと思います - 私はそれを好きです.... zero

+0

だけでなく、私は、最初の投稿の先頭に**試用版を追加しましたしかし、私たちが見ているように、これは望んだ結果を返すものではありません。タグウェブサイト**は解析されません! – zero

答えて

1

あなたはちょうどあなたが必要とするためにフィルタリングし、すべてのあなたの<tag />ノード上for-eachする必要はありません。

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:output method="text" encoding="utf-8" /> 

    <xsl:template match="/"> 
     <xsl:apply-templates /> 
    </xsl:template> 

    <xsl:template match="osm"> 
     <xsl:apply-templates /> 
    </xsl:template> 

    <xsl:template match="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:value-of select="./tag[@k = 'name']/@v"/> 
     <xsl:text>&#x09;</xsl:text> 
     <xsl:value-of select="./tag[@k = 'wheelchair']/@v"/> 
     <xsl:text>&#x09;</xsl:text> 
     <xsl:value-of select="./tag[@k = 'website']/@v"/> 
     <xsl:text>&#x09;</xsl:text> 
     <xsl:value-of select="./tag[@k = 'addr:country']/@v"/> 
     <xsl:text>&#x09;</xsl:text> 
     <xsl:value-of select="./tag[@k = 'addr:street']/@v"/> 
     <xsl:text>&#x09;</xsl:text> 
     <xsl:value-of select="./tag[@k = 'addr:city']/@v"/> 
     <xsl:text>&#x09;</xsl:text> 
     <xsl:value-of select="./tag[@k = 'addr:housenumber']/@v"/> 
     <xsl:text>&#x0A;</xsl:text> 
    </xsl:template> 

    <!-- all non-restaurant nodes --> 
    <xsl:template match="node[tag[@k='amenity' and @v!='restaurant']]" /> 

</xsl:stylesheet> 
+0

hello dear filburt - 多くのおかげで、私を助けてくれました - 挨拶! – zero

関連する問題