- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理一个需要将 SQL 地理类型转换为 json 数组的项目。此时我选择的方法是使用 AsGML 选择 SQL 地理(给我一个 GML 表示)。
我正在使用 xslt 将这个生成的 GML 转换为我需要的 json 格式。
我不是 xslt 的专家 - 这可能是一个简单的问题。
我现在遇到的问题是 posList 元素的返回有一个尾随逗号,我无法从最终结果中删除它。
在此先感谢您的帮助 - 示例代码如下:
XSL:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="MultiSurface">
<MultiGeometry>
<xsl:apply-templates />
</MultiGeometry>
</xsl:template>
<xsl:template match="Polygon">
<Polygon>
<xsl:apply-templates />
</Polygon>
</xsl:template>
<xsl:template match="Point">
<Point>
<xsl:apply-templates />
</Point>
</xsl:template>
<xsl:template match="exterior">
{"ringtype":"exterior",
<xsl:apply-templates />
},
</xsl:template>
<xsl:template match="interior">
{"ringtype":"interior",
<xsl:apply-templates />
},
</xsl:template>
<xsl:template match="posList">
"coordinates":[
<xsl:call-template name="split">
<xsl:with-param name="str" select="normalize-space(.)" />
</xsl:call-template>
]
</xsl:template>
<xsl:template match="pos">
<coordinates>
<xsl:call-template name="split">
<xsl:with-param name="str" select="normalize-space(.)" />
</xsl:call-template>
</coordinates>
</xsl:template>
<xsl:template name="split">
<xsl:param name="str" />
<xsl:choose>
<xsl:when test="contains($str,'' '')">
<xsl:variable name="first">
<xsl:value-of select="format-number(number(substring-before($str,'' '')),''00.000000'')" />
</xsl:variable>
<xsl:variable name="second">
<xsl:value-of select="format-number(number(substring-before(substring-after(concat($str,'' ''),'' ''),'' '')),''00.000000'')" />
</xsl:variable>
<xsl:value-of select="concat(''['',$first,'','',$second,''],'')" />
<xsl:call-template name="split">
<xsl:with-param name="str">
<xsl:value-of select="substring-after(substring-after($str,'' ''),'' '')"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
<Polygon xmlns="http://www.opengis.net/gml">
<exterior>
<LinearRing>
<posList>32.230546755000034 -95.316506964999917 32.230542547000084 -95.316051441999946</posList>
</LinearRing>
</exterior>
</Polygon>
<Polygon>
{"ringtype":"exterior",
"coordinates":[
[32.230547,-95.316507],[32.230543,-95.316051],[32.230536,-95.315358],
]
},
</Polygon>
最佳答案
我已将您的 xslt(并且有许多更正)从无法编译的更正为不会产生多余逗号的 xslt :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:x="http://www.opengis.net/gml" exclude-result-prefixes="x">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="x:MultiSurface">
<MultiGeometry>
<xsl:apply-templates />
</MultiGeometry>
</xsl:template>
<xsl:template match="x:Polygon">
<Polygon>
<xsl:apply-templates />
</Polygon>
</xsl:template>
<xsl:template match="x:Point">
<Point>
<xsl:apply-templates />
</Point>
</xsl:template>
<xsl:template match="x:exterior">
<xsl:if test="preceding-sibling::exterior">,</xsl:if>
{"ringtype":"exterior",
<xsl:apply-templates />
}
</xsl:template>
<xsl:template match="x:interior">
{"ringtype":"interior",
<xsl:apply-templates />
},
</xsl:template>
<xsl:template match="x:posList">
"coordinates":[
<xsl:call-template name="split">
<xsl:with-param name="str" select="normalize-space(.)" />
</xsl:call-template>
]
</xsl:template>
<xsl:template match="x:pos">
<coordinates>
<xsl:call-template name="split">
<xsl:with-param name="str" select="normalize-space(.)" />
</xsl:call-template>
</coordinates>
</xsl:template>
<xsl:template name="split">
<xsl:param name="str" />
<xsl:choose>
<xsl:when test="contains($str,' ')">
<xsl:variable name="first">
<xsl:value-of select="format-number(number(substring-before($str,' ')),'00.000000')" />
</xsl:variable>
<xsl:variable name="second">
<xsl:value-of select="format-number(number(substring-before(substring-after(concat($str,' '),' '),' ')),'00.000000')" />
</xsl:variable>
<xsl:value-of select="concat('[',$first,',',$second,']')" />
<xsl:if test="substring-after(substring-after($str,' '),' ')">
<xsl:text>, </xsl:text>
<xsl:call-template name="split">
<xsl:with-param name="str">
<xsl:value-of select="substring-after(substring-after($str,' '),' ')"/>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
<Polygon xmlns="http://www.opengis.net/gml">
<exterior>
<LinearRing>
<posList>32.230546755000034 -95.316506964999917 32.230542547000084 -95.316051441999946</posList>
</LinearRing>
</exterior>
</Polygon>
<Polygon>
{"ringtype":"exterior",
"coordinates":[
[32.230547,-95.316507], [32.230543,-95.316051]
]
}
</Polygon>
关于sql-server - XSL - GML 到 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11814277/
我一直在尝试将一些附加属性解析到 networkx gml 中以供稍后使用,但我遇到了问题。 当从 Cytoscape 获得 gml 文件时,networkx 会输出一个它本身无法读取的 gml 文件
所以我一直在开发一个程序,要求用户输入一个值,当用户通过输入 -99 退出代码时,它应该返回所有数字的总值和平均值,但我很难过我的值不断被前一个值覆盖...这是我的代码 { var user_Inpu
我有一个 GML(图形(不是涂鸦)建模语言)文件,我想从中创建 ID 到标签的映射。我不知道如何执行此操作,因为我的列表操作似乎不起作用。我尝试使用指定如何使用两个定界符的示例,但它不适用于我的文件。
我遇到一个问题,我的代码有时只能工作,我希望有更多专业知识的人可以检查我做错了什么。根据一些阅读,直接查询标签作为后代似乎是获取我的信息的最简单方法,但我开始意识到这可能不是最好的方法。 我的代码:
我有一个包含电子邮件对话网络数据的数据集,该数据集由代表代理之间连接的两列组成。 数据集可以从 here 访问 由于我在 R 中使用 igraph,因此我想将此文件转换为 GML 格式。 有没有办法做
我有来自 Hibernate 实体的 GML 字符串,我想将其转换为 GML 对象。有没有像 GML 对象一样的东西,就像我们有几何对象一样?我想做的是在浏览器中打印到 GML,以便可以扩展其标签,但
我在用 C# 读取一些 gml 文件时遇到问题。我的文件没有模式或命名空间,看起来像这个问题的文件: Parsing GML data using C# Linq to XML 只有像这样的架构:
我在将 GeoJSON 对象转换为 GML 几何对象时遇到以下问题。 首先,在请求的后端,我检索 GeoJSON 对象。然后我使用 jackson 库将其转换为 java 对象。此 java 对象是来
我从 wolfram mathimatica 保存了一个 .gml,有没有人有如何加载文件并在网页上显示的示例?我目前正在处理 d3,另一种语言会更合适吗? 谢谢。 最佳答案 有一个非常好的post在
我正在尝试使用 GML 命名空间和 构建一个 XML 文档。 XML 到 LINQ . 我的目标是 XElement内容如下: ... 但我得到以下信息: 问题在于gml:元素中缺少。这是为什么?
我正在处理一个需要将 SQL 地理类型转换为 json 数组的项目。此时我选择的方法是使用 AsGML 选择 SQL 地理(给我一个 GML 表示)。 我正在使用 xslt 将这个生成的 GML 转换
我已经下载了包含 dolphins social network 的 gml 文件. 前段时间我对运行python 3.4和的网络做了一些分析。网络x 1.9 在 Windows7 机器上,但现在我在
我使用 GML 图形文件格式将图形读入 igraph(R 版本)。有没有办法将边缘属性设置为字符串?似乎某些属性标签允许具有字符串值,而其他属性标签则不允许。输入文件示例: graph [ node
我想创建一个需要使用 Java 创建 .gml 文件的应用程序。我想从文本文件在新创建的 .gml 文件中添加元素。 我该怎么做? 最佳答案 我猜测您有某种形式的遗留输出,没有显式标记,并且其中包含地
我正在使用 org.w3c.dom 包来解析 gml 架构 (http://schemas.opengis.net/gml/3.1.0/base/)。 当我解析 gmlBase.xsd 架构然后将其保
当我搜索捕捉网格功能时。其实就是Tile Collide。(你可能知道我学GMS2是因为tags..) 这对我的问题不重要。 切入正题,我了解了这个公式。 pos.x - (pos.x % gridw
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我在尝试将在 networkx 中创建的 LFR 基准图写入 GraphML XML 格式时遇到问题。 例如,当 G 是一个简单的星图时,以下代码可以正常工作: import networkx as
我似乎无法访问加载的 GML 文件的功能。我将使用 OpenLayers 的基本示例来演示我想要做什么: http://jsfiddle.net/AUbZn/14/ var map; map = ne
这个问题在这里已经有了答案: What is the fastest way to parse & split XML content with huge file size (800MB UP)
我是一名优秀的程序员,十分优秀!