【发布时间】:2012-05-23 08:07:09
【问题描述】:
OpenStreetMap xml 文档由一组“node”元素和一组“way”元素组成(除其他外)。
“节点”元素可以(可选)嵌套“标签”元素。
“way”元素由“node”元素的有序列表组成,由嵌套元素“nd”引用,它们的属性“ref”指向“node”元素的属性“id”。
这里是一个例子:
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="CGImap 0.0.2">
<node id="1726631203" lat="50.8500083" lon="4.3553223" visible="true" version="6" changeset="9938190" timestamp="2011-11-24T22:05:32Z"/>
...
<way id="160611697" user="toSc" uid="246723" visible="true" version="1" changeset="11385198" timestamp="2012-04-22T14:57:19Z">
<nd ref="1726631203"/>
<nd ref="1726631223"/>
<nd ref="1726631213"/>
<nd ref="1726631205"/>
<nd ref="1726631185"/>
<nd ref="1726631203"/>
</way>
...
</osm>
我的问题是如何使用 XSLT 进行以下转换?
- 过滤所有未被任何方式元素引用的节点元素。
- 过滤引用未包含在源 xml 文档中的节点元素的方式元素。
- 将属性“visible”更改为“false”,更改为任何没有“tag”子元素的“node”元素。
任何其他元素都应保留在生成的 xml 中。
【问题讨论】: