- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个非常大的 xml 文件 - 该文件源自地理信息学领域。我从德国子网站或 OpenStreetMap-Project 获得它:地理工程网站提供特定区域 OpenStreetMap 的每周快照:我从这里获取了 germany.osm.bz2 http://ftp5.gwdg.de/pub/misc/openstreetmap/download.geofabrik.de/
为了使用 xslt 进行一些测试,我想运行一个请求来找出某个实体 - 让我们以餐馆为例。我们想找出该地区所有的餐馆。
现在我们可以直接在我们下载的 bz2 压缩文件上运行它 - 例如,如果我们使用以下代码:
bzcat germany.osm.bz2 | xsltproc restaurants.xslt - > restaurants,csv
我用 xml_split 分割了文件 - 这是来自 CPAN 的一个很棒的 perl 模块。
问题:使用以下 xslt 处理器,我只得到不好的结果 - 解析的文件没有得到足够的解析,当我在 xml 文件上运行代码时,我只得到一小部分信息。请参阅 xslt 处理器 - 以及下面 - 我运行并解析的文件中的一个小数据 block (如果您想检查它) - 只需获取小数据集 - 请注意它是一个拆分文件
在这里你可以得到它:https://rapidshare.com/#!download|643p12|2523227518|germany-001.xml|100000
注意:请参阅重要行:xmlns:xml_split="http://xmltwig.com/xml_split"
这是这里:
<xsl:for-each select="xml_split:root/node/tag[@k='amenity' and @v='restaurant']">
注意 - 您可以运行一些测试 - 看看解析需要多长时间时间 xsltprocrestaurants.xslt germany-001.xml >restaurants-001.csv
real 0m0.308s
user 0m0.283s
sys 0m0.022s
这里我们有包含解析代码的 xslt 处理器 - (称为 atest3.xslt)
<xsl:stylesheet version = '1.0'
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xml_split="http://xmltwig.com/xml_split"
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:for-each select="xml_split:root/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:value-of select="./tag[@k = 'cuisine']/@v"/>
<xsl:text>	</xsl:text>
<xsl:value-of select="./tag[@k = 'wheelchair']/@v"/>
<xsl:text>	</xsl:text>
<xsl:value-of select="./tag[@k = 'website']/@v"/>
<xsl:text>	</xsl:text>
<xsl:value-of select="./tag[@k = 'addr:country']/@v"/>
<xsl:text>	</xsl:text>
<xsl:value-of select="./tag[@k = 'addr:city']/@v"/>
<xsl:text>	</xsl:text>
<xsl:value-of select="./tag[@k = 'addr:street']/@v"/>
<xsl:text>	</xsl:text>
<xsl:value-of select="./tag[@k = 'addr:housenumber']/@v"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
下面我们有一个来 self 们已解析的 xml 文件的数据 block :查看它
<node id="52768810" lat="48.2044749" lon="11.3249434" version="7" changeset="9490517" user="wheelmap_visitor" uid="290680" timestamp="2011-10-07T20:24:46Z">
<tag k="addr:city" v="Olching" />
<tag k="addr:country" v="DE" />
<tag k="addr:housenumber" v="72" />
<tag k="addr:postcode" v="82140" />
<tag k="addr:street" v="Hauptstraße" />
<tag k="amenity" v="restaurant" />
<tag k="cuisine" v="mexican" />
<tag k="email" v="info@cantina-olching.de" />
<tag k="name" v="La Cantina" />
<tag k="opening_hours" v="Mo-Su 17:00-01:00" />
<tag k="phone" v="+49 (8142) 444393" />
<tag k="website" v="http://www.cantina-olching.com/" />
<tag k="wheelchair" v="no" />
</node>
查看结果 - 请注意缺少一些部分 - 不幸的是..
51923772 49.0812534 8.5637183 Zur Talschänke
52040576 49.4635433 12.4287292 Emil-Kemmer-Haus
52141326 49.4144243 12.4143153 Gasthaus Plecher
52623232 48.9293634 8.2722549 Korfu
52664989 49.0435133 8.3919370 Restaurant Zentrum
52754898 49.3243828 12.3618662 Gasthaus Irlbacher
52762875 49.0099641 8.2528132 Langasthof Stober
52765672 50.0082768 9.2139632 Wirtshaus im Frohnrad
52768810 48.2044749 11.3249434 La Cantina
52768816 48.2051698 11.3257964 Indian Palace
52768826 48.2073264 11.3276147 Dorfstub'n
52768830 48.2075968 11.3281055 Le Candele
52774284 49.0319471 8.2888353 Zum Anker
好吧,我得到的结果有点问题 - 我尝试了很多,但目前我很困惑为什么我得到的输出很少 - 这与我在 xslt 处理器中的标签完全相反 - 任何想法和提示将不胜感激
顺便说一句:毕竟我想运行大约 5000 个文件,这些文件是分割的结果 - 随后我想将所有结果收集到 mysql 数据库中......
在这里您可以获取原始文件: http://ftp5.gwdg.de/pub/misc/openstreetmap/download.geofabrik.de ( germany.osm.bz2 2012年4月1日 14:51 1.7G )
这是一个 split 的: https://rapidshare.com/#!download|643p12|2523227518|germany-001.xml|100000
我必须重构男女同校-所以问题是-如何才能有效地获得mysql结果?
*更新:*感谢本线程中的第一个答案,我开始重构代码 - 但仍然缺乏一些更好的结果。我必须重试一次..建议进行很多更改 - 我在 xslt-parser 上进行了快速演练:通过第一次重构尝试,我得到了一些有趣的结果。但我会再试一次 - 我会仔细检查所有 xslt 处理器代码,并仔细查看是否发现错误,最后我尝试重构所有 xslt 文件。 - 任何指针和子建议或代码片段都非常受欢迎。问候你的零
最佳答案
看起来你的 ./tag[@k = '???']/@v
xpath 应该是 ../tag[@k='???']
,因为您的上下文节点是原始匹配的 tag
元素,而不是 node
元素。
您应该考虑更改上下文节点以使此代码更清晰并避免如下错误:
<xsl:for-each select="xml_split:root/node[tag[@k='amenity' and @v='restaurant']]">
然后您可以使用 XPath,例如 select="tag/@id"
和 tag[@k='country']/@v
。
但是您应该考虑重构此代码,以便更好地使用 template
而不是 for-each
。
关于mysql - xslt-processor 仅返回请求/匹配标签的一小部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10287116/
\Processor(_Total)\% Processor Time 是什么意思。基本假设是什么? 描述:因为这是来自 WAD 性能表计数器的性能计数器;因为这是 Azure,是否有任何测量相同的假
我有一个执行有限差分计算的 CUDA 代码。该代码在 Tesla M2090 处理器上运行良好,没有错误。相同的代码会在 Tesla T10 处理器中导致大量错误。我的结果中有很多零。 有谁知道这两种
我有一个执行有限差分计算的 CUDA 代码。该代码在 Tesla M2090 处理器上运行良好,没有错误。相同的代码会在 Tesla T10 处理器中导致大量错误。我的结果中有很多零。 有谁知道这两种
我正在尝试让 QueryDSL 用于 Spring Roo 项目。 这是我的插件配置: com.mysema.maven maven-
关注 this question ,我正在尝试从 this tutorial 组装示例代码 #include "p10f200.inc" ; CONFIG __CONFIG _WDT_OFF
我是qemu的新手,我读到它允许单步模式仿真。这很有用,因为我试图在每个周期中转储物理内存的某些地址。不幸的是,qemu文档非常糟糕。我知道如何从qemu监视器启用单步模式,但是我不知道将要在每个步骤
我的问题来自 Mystical's answer .据我了解,您有一条分支指令,它可以转到另一条指令,例如 0x123344或者它可以继续执行。 如果分支预测器根据过去的模式从其中任何一个进行猜测,它
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
是否由地址总线的大小确定?如果是,那么8086是20位处理器吗?如果没有,为处理器分配8位,16位,32位之类的位的标准是什么? 最佳答案 它的定义不明确。正如xtofl所指出的,广义上讲,它是原子计
我一直在寻找用于撰写技术论文的文字处理器,但我还没有真正找到。拥有一个可以很好地处理数学表达式、代码和伪代码的编辑器真的很不错。我还没有找到一种效果很好的。 有人有什么建议吗? 最佳答案 我个人相信
这个问题看起来太简单了,但我是在看了几个 ppt 后才问的。 这两种方法都提高了指令吞吐量。 super 扩展几乎也总是利用管道。 super 缩放有多个执行单元,管道也是如此,还是我错了? 最佳答案
我目前正在 LogiSim 中开发 6502 的一个子集,在当前阶段我正在确定要实现哪些部分以及可以删除哪些部分。我的主要资源之一是Hanson's Block Diagram . 我目前正在尝试确定
我目前正在 LogiSim 中开发 6502 的子集。我的主要资源之一是Hanson's Block Diagram . 我正在尝试确定应该如何以及在哪里构建电路来更新处理器状态寄存器。在下面的处理器
我对 Apache-airflow 非常陌生,刚开始在 udemy (this course) 中学习类(class)。 我们已收到 YAML 文件,并被要求按照说明安装 Airflow 。我相信我已
对于大学中期项目,我必须设计一个可配置的处理器,用 VHDL 编写代码,然后在 Digilent 的 Spartan 3E FPGA 板上进行综合。我是一个初学者,所以你能指点我一些关于可配置处理器的
我正在尝试获取处理器信息,特别是像 这样的名称Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz . 搜索网络我发现了一个函数,它使用 for-each 为我提供了处理器
我们的项目中有两个注释,我想收集带注释的类并基于两个类列表创建合并的输出。 只用一个 Processor 可以吗?实例?我怎么知道 Processor每个带注释的类都调用了实例? 最佳答案 框架调用
我有以下插入语句: 插入 temp1 值 (test1, test2) 插入 temp2 值 (test3) 预期结果: 插入 temp1 值 (100, 200) 插入 temp2 值 (300)
C99 标准第 7.23.1 节第 1 段定义了几个“时间”术语: Many functions deal with a calendar time that represents the curre
我正在编写注释处理器,我需要 TreeTranslator.visitIdent 来放置静态方法调用。我想我应该使用 TreeMaker.Call 或 TreeMaker.Create,还是应该使用
我是一名优秀的程序员,十分优秀!