【发布时间】:2016-08-02 09:35:37
【问题描述】:
我的 .xml 文件中有以下几行
<metadataObject ID="measurementFrameSet" classification="DESCRIPTION" category="DMD">
<metadataWrap mimeType="text/xml" vocabularyName="SAFE" textInfo="Frame Set">
<xmlData>
<safe:frameSet>
<safe:frame>
<safe:footPrint srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:coordinates>43.838726,8.275868 44.232952,11.408423 42.557594,11.770112 42.163200,8.725094</gml:coordinates>
</safe:footPrint>
</safe:frame>
</safe:frameSet>
</xmlData>
</metadataWrap>
我可以读取整个节点
<xsl:for-each select="//metadataSection/metadataObject/metadataWrap/xmlData/safe:frameSet/safe:frame/safe:footPrint" >
<xsl:value-of select="gml:coordinates" />
</xsl:for-each>
但我想以单独的方式仅提取“gml:coordinates”节点中的以下数值:43.838726,8.275868 42.557594,11.770112 因为在我的最终 xml 中它们将被插入到单独的字段中。
xslt 有没有办法从该节点获取子字符串?最终的 xml 应该如下所示:
<gmd:eastBoundLongitude>
<gco:Decimal>
43.838726
</gco:Decimal>
</gmd:eastBoundLongitude>
【问题讨论】:
-
1. 如果要提取四个坐标,为什么输出只显示一个? 2. 如何准确识别要提取的坐标? 3. 你可以使用 XSLTT 2.0 吗?如果没有,您将使用哪个 XSLT 1.0 处理器?
-
P.S.搜索
tokenize。 -
嗨迈克尔,1.输出只显示一个,因为它是最终 xml 中将出现的四个坐标的示例:westBoundLongitude、southBoundLongitude、northBoundLongitude。抱歉不够清楚。 2.输入的xml文件的格式总是一样的,所以我想提取子串要考虑数值的位置; 3.我正在使用我正在使用带有ECLIPSE版本的WINDOWS机器:Mars.2 Release (4.5.2)
-
Re #3:请确定具体的处理器 - 看这里如何:stackoverflow.com/questions/25244370/…
-
另外,请修改您的 XML 输入,以便我们可以看到与
safe:和gml:前缀关联的命名空间。