我想在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 ?
答案 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('"', $metadata/geonet:info/schema, '"', $sep,
'"', $metadata/geonet:info/uuid, '"', $sep,
'"', $metadata/geonet:info/id, '"', $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>
我将尝试为此打开请求请求。
我希望这些额外的信息对其他人有用。