Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 我如何定制";导出为csv“;地理网络中的功能?_Xslt_Export To Csv_Geonetwork - Fatal编程技术网

Xslt 我如何定制";导出为csv“;地理网络中的功能?

Xslt 我如何定制";导出为csv“;地理网络中的功能?,xslt,export-to-csv,geonetwork,Xslt,Export To Csv,Geonetwork,我想在Geonetwork 3.8.1中自定义导出为csv功能 我知道要编辑的文件是tpl-csv.xsl,在我的例子中,它位于这里 geonetwork/WEB-INF/data/config/schema_plugins/iso19115-3.2018/layout/tpl-csv.xsl 我想要的输出如下: “标题”、“云覆盖”、“类别”、“日期创建” “S2A\U MSIL1C\U 20151127T103352\U N0204\U R108\U T32TLS\U 20151127T10

我想在Geonetwork 3.8.1中自定义导出为csv功能

我知道要编辑的文件是tpl-csv.xsl,在我的例子中,它位于这里

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

我想要的输出如下:

“标题”、“云覆盖”、“类别”、“日期创建”
“S2A\U MSIL1C\U 20151127T103352\U N0204\U R108\U T32TLS\U 20151127T103440”、“36.6172”、“数据集”、“2015-11-27T10:34:40”

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

“模式”、“uuid”、“id”、“cit:标题”、“gco:真实”、“类别”、“日期创建”
“iso19115-3.2018”、“89d82f0a-051e-11ea-80ac-02000a08f492”、“1155”、“S2A\U MSIL1C\U 20151127T103352\U N0204\U R108\U T32TLS\U 20151127T103440”、“36.6172”、“数据集”、“2015-11-27T10:34:40”


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

我找到了自定义导出(csv)函数输出的解决方案

以下是需要考虑的两个文件:

geonetwork/WEB-INF/data/config/schema_plugins/iso19115-3.2018/layout/tpl-csv.xsl
geonetwork/xslt/services/csv/csv-search.xsl
在第一行中,正如@josegar74向我建议的那样,您必须在抽象元素和类别元素之间添加类似的行: 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>
然后aI评论了我不感兴趣的所有其他行,但是:

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

关于第二个文件csv-search.xsl,我发现为了避免自动打印3列:“schema”、“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"/>
“模式”
“uuid”
“id”


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

“uuid”、“标题”、“云覆盖率”、“类别”、“创建日期” “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”

如果您不想看到最后一个值后的最后一个逗号(在我的例子中是日期创建),可以在文件末尾添加一小段代码:

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>
注释该行
``(l.185)
添加以下代码行:
我将尝试为此打开一个pull请求

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

<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)"/>
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>