最新版本的ArcGIS中有許多元數據更改。我特別使用10.2版,並試圖更新多個利用多個地理處理工具的Python腳本。這些腳本用於輕鬆搜索元數據以獲取地理處理歷史記錄,並將該信息輸出到文本日誌文件。自定義xslt以僅輸出ArcGIS元數據中的地理處理歷史記錄
ArcGIS中有一個工具,它使用「.NET 3.5 XML軟件使用XSLT 1.0樣式表來轉換ArcGIS項目的元數據或任何XML文件,並將結果保存到XML文件中。」該工具被稱爲XSLT轉換。 ESRI提供了幾個用於此工具的轉換。特別是與我想達到的完全相反:複製除地理處理歷史記錄以外的所有元數據。以下是我所指的xslt文件。
<?xml version="1.0" encoding="UTF-8"?>
<!-- Processes ArcGIS metadata to remove empty XML elements to avoid exporting and validation errors. -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="no" />
<!-- start processing all nodes and attributes in the XML document -->
<!-- any CDATA blocks in the original XML will be lost because they can't be handled by XSLT -->
<xsl:template match="/">
<xsl:apply-templates select="node() | @*" />
</xsl:template>
<!-- copy all nodes and attributes in the XML document -->
<xsl:template match="node() | @*" priority="0">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template>
<!-- templates below override the default template above that copies all nodes and attributes -->
<!-- exclude geoprocessing history -->
<xsl:template match="/metadata/Esri/DataProperties/lineage" priority="1">
</xsl:template>
</xsl:stylesheet>
我從來沒有用過xslt文件,但我很快就學會了。如果可能的話,我想創建一個只複製地理處理歷史記錄(lineage)的文件,但也要創建一個有效的xml文件。我嘗試了一下,但是當我使用我的轉換時,結果是一個類似「會導致無效的XML文檔」的錯誤。
任何幫助,將不勝感激。
您可以發佈您的示例輸入XML和預期輸出XML嗎? –