只是想知道是否可以使用XSLT轉換文件將XML從一種標準轉換爲另一種標準。我試圖將FGDC元數據轉換爲ISO 19139.我有一個XSLT,它應該能夠對其進行轉換。使用XSLT將FGDC XML轉換爲ISO XML
如果可能的話,有什麼我缺少以下代碼?
from lxml import etree
f_xml = 'U:\\PROJECTS\\FGDC2ISO\\A08727.mxd.xml'
f_xsl = 'U:\\PROJECTS\\FGDC2ISO\\ISO2.xslt'
f_out = 'U:\\PROJECTS\\FGDC2ISO\\A08727_ISO.mxd.xml'
transform = etree.XSLT(etree.parse(f_xsl))
result = transform(etree.parse(f_xml))
result.write(f_out)
這裏是一個鏈接到XSLT 編輯鏈接現在好了:
樣品XSML文件:
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gmi="http://www.isotc211.org/2005/gmi" xmlns:gmx="http://www.isotc211.org/2005/gmx" xmlns:gsr="http://www.isotc211.org/2005/gsr" xmlns:gss="http://www.isotc211.org/2005/gss" xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vmf="http://www.altova.com/MapForce/UDF/vmf" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:grp="http://www.altova.com/Mapforce/grouping" xmlns="http://www.isotc211.org/2005/gmi" version="2.0" exclude-result-prefixes="fn grp vmf xs xsi xsl">
<xsl:template name="vmf:vmf1_inputtoresult">
<xsl:param name="input" select="()"/>
<xsl:choose>
<xsl:when test="$input='POINT'">
<xsl:value-of select="'point'"/>
</xsl:when>
<xsl:when test="$input='PIXEL'">
<xsl:value-of select="'point'"/>
</xsl:when>
<xsl:when test="$input='GRID CELL'">
<xsl:value-of select="'area'"/>
</xsl:when>
<xsl:when test="$input='VOXEL'">
<xsl:value-of select="'area'"/>
指向樣式表的鏈接不起作用。 – mzjn
對不起,我編輯了鏈接。現在應該工作。我一直在遇到錯誤lxml.etree.XSLTParseError:無效表達式 – MapZombie