描述
此工具使用 .NET 3.5 XML 软件对 ArcGIS 项目的元数据或使用 XSLT 1.0 样式表的任何 XML 文件进行转换,并将结果保存至某个 XML 文件。
XSLT 样式表可用于对 ArcGIS 元数据或 XML 文件执行多种修改。ArcGIS Desktop 提供了几种 XSLT 样式表。可以使用它们将项目元数据的副本保存到 XML 文件,将元数据显示的副本保存到 HTML 文件以及更改项目元数据内容。这些 XSLT 样式表可在 <ArcGIS Installation Location>\Metadata\Stylesheets 文件夹中找到。
了解有关随 ArcGIS Desktop 提供的 XSLT 样式表的更多信息
可基于所提供的样式表来创建您自己的 XSLT 样式表以执行任务。例如,您可能会为执行以下操作而编写一个样式表:
- 更新地址或电话号码。创建用于运行此过程的模型,然后使用元数据导入程序工具将更新的元数据保存到原始 ArcGIS 项目。
- 在导出或发布元数据之前,删除不希望公开的信息。在运行导出元数据或元数据发布程序工具之前,创建用于运行此过程的模型。
- 将信息导出到可纳入网站的 XML 或 HTML 文件中。定期创建用于运行此过程的脚本。
XSLT 样式表用于修改 ArcGIS 元数据,但不应删除 Esri 及进制元数据元素中的信息,在 ArcGIS 外部使用输出 XML 时除外。
使用
- 由 XSLT 样式表生成的输出文件可被格式化为多种格式,例如 XML、HTML 或文本格式。对于本工具所提供的默认输出文件名,其扩展名为 .xml。若使用的 XSLT 样式表无法生成 XML 文件,则应为文件名指定一个适合的文件扩展名。 
- 对于使用旧版本 XSL 样式表(ArcGIS Desktop 9.3.1 及更早版本中所提供 XSL 样式表)的 ArcGIS 项的元数据或独立元数据 XML 文件,本工具无法处理,因为这些元数据或 XML 文件不支持 XSLT 1.0 技术。其使用的技术较老,.NET 3.5 Framework 不支持该技术。这些 XSL 样式表也不能在 ArcGIS 元数据编辑器中使用。 
- XSLT 参数可将字符串或 XML 文件名传递给 XSLT 样式表,然后使用所传递的参数来修改项的元数据。例如,XSLT 样式表可将电话号码以字符串的形式进行传递,并更新元数据中的所有电话号码。若使用此参数传递 XML 文件,则 XSLT 样式表可将文件中包含的信息与源元数据合并。 - 有关如何传递值的示例,请参考 ArcGIS 随附的 add unique identifier.xslt 文件;有关如何将单独 XML 文件中的信息与 ArcGIS 项的元数据进行合并的示例,请参考 merge upgraded FGDC with existing.xslt。 
- 若需创建一个自定义 XSLT 样式表来显示(或导出)ArcGIS 中的元数据(或 XML 文件),则请参阅 .NET 3.5 Framework 的 Microsoft 文档,其中包含有关 XSLT 和 XPath 元素、函数及其所支持语法的完整列表。除某些标准 XSLT 函数外,还可以提供一些 .NET 特定函数。 - 若想在 ArcGIS 内外部都能使用自定义样式表,则应尽量使用 XSLT 1.0 与 XPath 1.0 元素、函数及语法,这样会大大提高操作成功的概率。非 Microsoft 应用程序可能不支持任何 .NET 特定 XSLT 和 XPath 函数。 
- XSLT 样式表是唯一能同本地理处理工具及 ArcGIS 元数据编辑器一起使用的样式表,该样式表可通过某些 ArcGIS 提供的自定义 XSLT 函数来提高元数据的处理能力和显示效果。要使用这些函数,XSLT 样式表必须参考 ArcGIS XSLT 函数命名空间 http://www.esri.com/metadata/ 的 URI,例如 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:esri="http://www.esri.com/metadata/">。 - 必须在 ArcGIS XSLT 函数的开头为 ArcGIS XSLT 函数命名空间指定前缀。如果为 ArcGIS XSLT 函数命名空间指定前缀 esri(如上例所示),则可按以下方法使用 GuidGen() 函数:<xsl:value-of select="esri:GuidGen()" />。 - GuidGen() - 返回一个新的全局唯一标识符 (GUID) 值,不包括大括号({ and })。例如,元数据中可包含 GUID,以唯一标识元数据文档或该文档所描述的资源。有关示例,请参考 ArcGIS 提供的 add unique identifier.xslt 文件。
- decodenodeset() - 如果 XML 元素中包含转义的 XHTML 或 XML,则此函数将返回节点集,可将该节点集与 msxsl:node-set 函数结合使用,来处理先前转义的各个元素。有关示例,请参考 ArcGIS 提供的 ESRIISO2.xslt 和 ItemDescription.xslt 文件。例如,项目的空间参考属性以转义的 XML 数据的形式自动存储在项目的元数据中。对于准备在发布 ArcGIS Online 时在元数据编辑器中标记的摘要和使用限制内容,将以转义的 XHTML 的形式存储。
- splitcoords() - 采用逗号分隔的 x,y 坐标对,并将它们转换为空格分隔的列表。有关示例,请参考 ArcGIS 提供的 upgrade ESRI-ISO to ArcGIS94.xslt 文件。
- strtoupper() - 将输入文本字符串更改为所有字母均为大写形式。有关示例,请参考 ArcGIS 提供的 add unique identifier.xslt 文件。
- striphtml() - 如果 XML 元素包含转义的 XHTML 或 XML,则此函数将返回其中所含的文本,但会删除所有标记。也就是说,会将两个小于 (<) 或大于 (>) 字符之间的任何内容假设为标记并将其删除。有关示例,请参考 ArcGIS 提供的 ESRIISO2.xslt、ItemDescription.xslt 和 prep metadata for export.xslt 文件。例如,在准备将摘要和使用限制元素的内容导出为标准元数据格式时,将会从元数据内容中删除存在的任意 XHTML 标记。
- strtolower() - 将输入文本字符串更改为所有字母均为小写形式。有关示例,请参考 ArcGIS 提供的 auxCountries.xslt、auxLanguages.xslt 和 auxUCUM.xslt 文件。
 
- 源元数据参数具有复杂的数据类型。如果在模型中使用此工具,则请在 ModelBuilder 中为源元数据参数创建变量,方法为右键单击此工具,指向获取变量,指向从参数,然后单击源元数据。 
- 如果某 ArcGIS 项包含的元数据是在 ArcGIS Desktop 9.3.1 或更早版本中使用 FGDC 元数据编辑器创建的,并且项的元数据已升级为 ArcGIS 元数据,则 ArcGIS 元数据将保留原始的 FGDC 元数据 XML 元素。此元数据还将包含其他 ArcGIS 元数据元素。 - 可结合 ArcGIS 提供的 _MPXML2.xsl 文件,利用此工具导出原始 FGDC 元数据元素。在上例中,此文件将仅导出项目的原始 FGDC 格式元数据内容,即在描述选项卡的 FGDC 元数据(只读)标题下方显示的信息。在输出 XML 文件中,FGDC 元素将按正确方式排序。 - 导出的文件可用 FGDC XML 模式、DTD 或 USGS 元数据工具(通常称为 mp)进行验证。USGS MP 元数据转换程序会在处理项目的 FGDC 格式元数据内容之前内部执行此操作。 
- 对于以 HTML 格式发布至外部网站上的元数据,Internet 搜索引擎(如 Google)将为其建立索引,前提是该网站能正确显示其内容。 
语法
XSLTransform(source, xslt, output, {xsltparam})| 参数 | 说明 | 数据类型 | 
| source | 要进行元数据转换的项,或者要进行转换的独立 XML 文件。 | Data Element; Layer | 
| xslt | 符合 W3C 规范的 XSLT 1.0 样式表文件用于定义将要执行的转换。 ArcGIS 提供了几种样式表,可以在 <ArcGIS Installation Location>\Metadata\Stylesheets 文件夹中找到这些样式表。 | File | 
| output | 要创建的文件,用于包含转换后的元数据。 所创建文件的类型取决于 XSLT 样式表所指定的输出方式。 | File | 
| xsltparam (可选) | 将被传递给 XSLT 样式表的 XML 文件或字符串。 如要获得 XSLT 样式表中的此参数,需在 XSLT 样式表顶端,xsl:output 元素之后,第一个 xsl:template 元素之前添加 <xsl:param name="gpparam" />。有关示例,请参阅 add unique identifier.xslt 文件。 | File; String | 
代码示例
将元数据导出为 HTML 文件
使用 ArcGIS 提供的 ArcGIS.xsl XSLT 样式表将元数据导出为可在网站上使用的 HTML 文件。
import arcpy
from arcpy import env
env.workspace = "C:/data"
#set local variables
dir = arcpy.GetInstallInfo("desktop")["InstallDir"]
xslt = dir + "Metadata/Stylesheets/ArcGIS.xsl"
arcpy.XSLTransform_conversion("vegetation", xslt, "vegetation.html", "#")
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是