gpt4 book ai didi

mysql - xslt-processor 在一个数据集上返回最佳结果,在另一个数据集上没有返回结果

转载 作者:行者123 更新时间:2023-11-29 00:46:41 30 4
gpt4 key购买 nike

亲爱的 xml friend 们,你好,美好的一天,

我是 xml 的新手,所以请不要容忍我的问题...我目前正在使用 xslt 处理器进行一些测试 -我有一个脚本可以在一个测试数据集上运行良好 - 并返回良好且有效的结果并且与此行为相反如果我运行相同的脚本,我会得到愚蠢和愚蠢的结果 - 注意:我会得到一个 2 MB 的 csv 格式文件,其中包含只有制表位...有趣但真实...

所以我的脚本是:

如果我在以下测试数据集上运行此 xslt 代码,我只会得到糟糕的结果——只有制表位……仅此而已……是什么导致了这个错误。注意 - 如果我针对第二个数据集运行代码,我会得到更好的结果。- 请参阅下面的内容...并在本次初始发布结束时查看结果...

<?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 = 'cuisine']/@v"/>
<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:city']/@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: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>

如果我针对这个测试数据集运行它 - 那么我只会得到一个只有制表位的文件的愚蠢结果。我不知道是什么导致了错误?

<node id="25242198" lat="49.0077605" lon="8.3560676" version="9" changeset="10151199" user="keinname" uid="165061" timestamp="2011-12-18T22:59:43Z">
<tag k="addr:city" v="Karlsruhe" />
<tag k="addr:country" v="DE" />
<tag k="addr:housenumber" v="6" />
<tag k="addr:postcode" v="76185" />
<tag k="addr:street" v="Durmersheimer Straße" />
<tag k="amenity" v="restaurant" />
<tag k="beer_garden" v="yes" />
<tag k="cuisine" v="german" />
<tag k="name" v="Beim Schupi" />
<tag k="opening_hours" v="Mo-Sa 17:00+; Su 12:00+" />
<tag k="phone" v="+49 721 551220" />
<tag k="website" v="http://www.schupi.de" />
</node>

[...]...

注意:我得到了愚蠢和糟糕的结果——只有制表位,仅此而已。

但是如果我在下面的 xml 数据集上运行上面提到的 xslt-processor-code,我会得到很好的结果......见下文 - !!!

<?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>

看到-还不错!! - 我在第二个数据集上运行 xslt 处理器时得到的结果:我不知道为什么我会得到如此糟糕的结果 - 当我在第一个数据集上应用 xslt 处理器时...!?

185612117   48.8037523  9.5248779       Courage yes http://www.courage-restaurant.de/   DE  Schorndorf  Künkelinstraße  33

252619189 48.8067032 9.5314986 Kesselhaus yes www.kesselhaus-schorndorf.de DE Schorndorf Arnoldstraße 3

319597380 48.8277913 9.5477029 Gasthaus zur Linde

319597382 48.8282523 9.5503109 China-Garden

339591124 48.7888015 9.5079525 italian Pizzeria da Rocco limited

392682646 48.8315734 9.5468864 Gasthaus an der Wieslauf

454516720 48.8031264 9.5344371 regional Deutsches Haus http://www.deutscheshaus-schorndorf.de/ DE Schorndorf Sonnenscheinstraße 13

非常欢迎任何关于解决方案的想法和指示...提前致谢!!

最佳答案

我得到了很好的结果:情况 2 中有 11 行,情况 1 中有一行:

25242198    49.0077605  8.3560676   german  Beim Schupi     http://www.schupi.de    DE  Karlsruhe   Durmersheimer Straße   6

这正是我期望得到的。
对于任何 xslt 处理器来说,当只有一个记录存在而对多个记录工作正常时,模板化的 xslt 工作表失败是很奇怪的。

我建议您再看一下,如果仍然失败,请告诉我们您使用的是哪种 xslt 处理器。

关于mysql - xslt-processor 在一个数据集上返回最佳结果,在另一个数据集上没有返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10265900/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com