如何在地理网络中自定义“导出为csv”功能?

时间:2019-11-13 13:16:28

标签: xslt export-to-csv geonetwork

我想在Geonetwork 3.8.1中自定义 export as csv 函数。

我知道要编辑的文件是tpl-csv.xsl,就我而言,位于此处

geonetwork / WEB-INF / data / config / schema_plugins / iso19115-3.2018 / layout / tpl-csv.xsl

我想要的输出是以下内容:

"title","cloud coverage","category","date-creation" "S2A_MSIL1C_20151127T103352_N0204_R108_T32TLS_20151127T103440","36.6172","dataset","2015-11-27T10:34:40"

我做了一些测试,但我只能参加

"schema","uuid","id","cit:title","gco:Real","category","date-creation" "iso19115-3.2018","89d82f0a-051e-11ea-80ac-02000a08f492","1155","S2A_MSIL1C_20151127T103352_N0204_R108_T32TLS_20151127T103440","36.6172","dataset","2015-11-27T10:34:40",

如何以更正确的方式编辑 tpl-csv.xsl

1 个答案:

答案 0 :(得分:0)

我找到了定制EXPORT(CSV)函数输出的解决方案。

这是要考虑的两个文件:

geonetwork/WEB-INF/data/config/schema_plugins/iso19115-3.2018/layout/tpl-csv.xsl
geonetwork/xslt/services/csv/csv-search.xsl

在第一个中,如@ josegar74向我建议的那样,您必须在abstract和category元素之间添加类似的行: myfieldvalue 就我而言,我插入:

<title><xsl:copy-of select="mdb:identificationInfo/*/mri:citation/*/cit:title"/></title>
<cloud_coverage_percentage><xsl:copy-of select="mdb:contentInfo/mrc:MD_ImageDescription/mrc:cloudCoverPercentage/gco:Real"/></cloud_coverage_percentage>

尤其是关于云覆盖百分比,请记住在标题中添加名称空间,因为它缺少:

xmlns:mrc="http://standards.iso.org/iso/19115/-3/mrc/2.0"

然后,我评论了我不感兴趣的所有其他内容,

<xsl:copy-of select="gn:info"/>

关于第二个文件csv-search.xsl,我发现避免自动打印3列:“模式”,“ uuid”,“ id”, 您必须评论以下几行:

<xsl:text>"schema"</xsl:text>
<xsl:value-of select="$sep"/>
<xsl:text>"uuid"</xsl:text>
<xsl:value-of select="$sep"/>
<xsl:text>"id"</xsl:text><xsl:value-of select="$sep"/>

<xsl:value-of select="concat('&quot;', $metadata/geonet:info/schema, '&quot;', $sep,
                  '&quot;', $metadata/geonet:info/uuid, '&quot;', $sep,
                  '&quot;', $metadata/geonet:info/id, '&quot;', $sep)"/>

这样,我就有可能获得所需的输出:

“ uuid”,“ title”,“ cloud_coverage_percentage”,“ category”,“ date-creation” “ c94da70e-066e-11ea-aa22-02000a08f492”,“ S2A_MSIL1C_20180320T101021_N0206_R022_T33TUM_20180320T122057”,“ 36.0368”,“数据集”,“ 2018-03-20T12:20:57”, “ 7caf22dc-066f-11ea-a038-02000a08f492”,“ S2A_MSIL1C_20180320T101021_N0206_R022_T33TVN_20180320T122057”,“ 100.0”,“数据集”,“ 2018-03-20T12:20:57”,

如果您不想在最后一个值(在我的情况下为date-creation)之后看到最后一个逗号,则可以在文件末尾添加一小段代码:

comment the line
`<xsl:value-of select="$sep"/>` (l.185)

add the following lines of codes:

<xsl:if test="position() != last()">
    <xsl:value-of select="$sep"/>
</xsl:if>

我将尝试为此打开请求请求。

我希望这些额外的信息对其他人有用。