【问题标题】:XSL stylesheet for a Filemaker pro XML export用于 Filemaker pro XML 导出的 XSL 样式表
【发布时间】:2016-02-09 23:36:51
【问题描述】:

我正在为 filemaker pro XML 导出创建样式表,但是当我在浏览器中加载它时,输出不会呈现。我已经用其他示例 XML 数据测试了 XSL 代码,它在浏览器中呈现良好,但它不适用于 filemaker pro 格式。任何建议将不胜感激。

我的 XML 文件如下所示:

<?xml version="1.0" encoding="UTF-8" ?><!-- This grammar has been deprecated - use FMPXMLRESULT instead -->
<?xml-stylesheet version="1.0" href="style.xsl" type="text/xsl"?>
<FMPDSORESULT>
    <ERRORCODE>0</ERRORCODE>
    <DATABASE>Database.fmp12</DATABASE>
    <LAYOUT>Manage Parts</LAYOUT>
    <ROW MODID="177" RECORDID="2104">
        <Code>T034-00596</Code>
        <Description>INFO GUIDE</Description>
        <Size>2</Size>
        <Units>/1</Units>
        <Price>5</Price>        
    </ROW>
    <ROW MODID="178" RECORDID="2105">
        <Code>T034-00597</Code>
        <Description>INFO GUIDE</Description>
        <Size>2</Size>
        <Units>/3</Units>
        <Price>4</Price>        
    </ROW>
    <ROW MODID="177" RECORDID="2104">
        <Code>T034-00598</Code>
        <Description>INFO GUIDE</Description>
        <Size>2</Size>
        <Units>/2</Units>
        <Price>6</Price>        
    </ROW>  
</FMPDSORESULT>

这是我的 XSL 文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/FMPDSORESULT">

<html>
    <Head>
    … header omitted for brevity …
    </Head>
        <body>          
            <xsl:for-each select="ROW">
                <h1><xsl:value-of select="Code" /></h1>
            </xsl:for-each>     
        </body>
</html>

</xsl:template>
</xsl:stylesheet>

【问题讨论】:

  • 请永远不要将问题描述为“它不起作用”。总是发布预期的结果,并解释你自己的结果与它有何不同。还要确保发布足够的代码让我们重现问题。您发布的代码“工作正常”。

标签: xml xslt filemaker


【解决方案1】:

不是 FileMaker 导出的样子。 FileMaker 将导出的节点放置在自己的命名空间中:

<FMPDSORESULT xmlns="http://www.filemaker.com/fmpdsoresult">

您的样式表必须声明此命名空间,为其分配前缀并使用此前缀来寻址 XML 源中的元素:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fmp="http://www.filemaker.com/fmpdsoresult"
exclude-result-prefixes="fmp">

<xsl:template match="/fmp:FMPDSORESULT">
    <html>
        <head>
        … header omitted for brevity …
        </head>
        <body>          
            <xsl:for-each select="fmp:ROW">
                <h1><xsl:value-of select="fmp:Code" /></h1>
            </xsl:for-each>     
        </body>
    </html>
</xsl:template>

</xsl:stylesheet>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 2012-11-07
    • 2012-07-08
    • 2012-04-01
    • 2012-04-03
    • 1970-01-01
    相关资源
    最近更新 更多