我有一个XML文件,开头如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<MensajeFacturacion xmlns="http://localhost/elegibilidad" AgenteSolicitante="0021">
<Cabecera>
...
我正在尝试将此文件的信息导入Filemaker,但这是不可能的,因为在节点MensajeFacturacion
中我有xmlns="http://localhost/elegibilidad"
。如果删除命名空间,则导入文件就好了。
这就是XSL的样子:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fmp="http://www.filemaker.com/fmpxmlresult"
exclude-result-prefixes="fmp">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
<xsl:template match="/">
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<ERRORCODE>0</ERRORCODE>
<PRODUCT BUILD="03-15-2012" NAME="FileMaker" VERSION="ProAdvanced 12.0v1"/>
<DATABASE DATEFORMAT="D/m/yyyy" LAYOUT="" NAME="" RECORDS="" TIMEFORMAT="k:mm:ss "/>
<METADATA>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Codigo_empresa_emisora" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="CUPS" TYPE="TEXT"/>
</METADATA>
<RESULTSET FOUND="">
<ROW RECORDID="" MODID="" >
<COL><DATA><xsl:value-of select="//Cabecera/CodigoREEEmpresaEmisora"/></DATA></COL>
<COL><DATA><xsl:value-of select="//Medidas/CodUnificadoPuntoSuministro"/></DATA></COL>
</ROW>
</RESULTSET>
</FMPXMLRESULT>
</xsl:template>
</xsl:stylesheet>
如何让导入与名称空间一起使用?
答案 0 :(得分:1)
您需要在<stylesheet>
元素中声明源文档的命名空间,为其分配前缀并在寻址源文档的元素时使用该前缀。所以样式表的根元素看起来像这样:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="http://localhost/elegibilidad">
(请注意,此处声明Filemaker名称空间需要不>,并且您需要将获取数据的调用更改为:
<COL><DATA><xsl:value-of select="//ns:Cabecera/ns:CodigoREEEmpresaEmisora"/></DATA></COL>
<COL><DATA><xsl:value-of select="//ns:Medidas/ns:CodUnificadoPuntoSuministro"/></DATA></COL>