由于空名称空间声明,XSLT节点无法选择

时间:2014-05-20 15:29:04

标签: xml xslt namespaces

我得到的KML文件对于description标签有一个空的名称空间声明。它们如下:

<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
    <Point>
        <coordinates>10.42195,46.9603,0</coordinates>
    </Point>
    <Name>Hallo world</Name>
    <description xmlns="">My description
    </description>          
</Placemark>
...
</Document>
</kml>

我编写了一个XSLT转换,如下所示:

<xsl:template match="kml:Placemark">
    ...
    <xsl:apply-templates select="description" />
</xsl:template>


 <xsl:template match="description">
    <xsl:element name="payload">
        <xsl:value-of select="." />
    </xsl:element>
</xsl:template>

未选择description节点。如果我删除(空)名称空间声明,它将被选中。我已经看到在SO上已经报道了类似的问题,我已经尝试了所提出的解决方案,但不幸的是,它们都没有解决我的问题。

如何选择包含空命名空间声明description的{​​{1}}节点?

谢谢!

编辑:我包括完整的样式表

xmlns=""

1 个答案:

答案 0 :(得分:0)

正如所建议的,删除Xalan和EXSLT相关的命名空间问题已经解决了。