通过具有列名的xslt输出Filemaker xml
我不熟悉xslt编程和xlm。我已经创建了下面的代码,它工作得很好,只是每个列的变量名都显示为“colno”,如何将列名输入到输出中通过具有列名的xslt输出Filemaker xml,xslt,filemaker,Xslt,Filemaker,我不熟悉xslt编程和xlm。我已经创建了下面的代码,它工作得很好,只是每个列的变量名都显示为“colno”,如何将列名输入到输出中 <?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" exc
<?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="yes"/>
<xsl:variable name="kMetaData" select="fmp:METADATA/fmp:FIELD"/>
<xsl:variable name="colno"
select="count($kMetaData[following-sibling::fmp:FIELD/@NAME]) + 1" />
<xsl:template match="/fmp:FMPXMLRESULT">
<PERSON>
<xsl:apply-templates select="fmp:RESULTSET/fmp:ROW" />
</PERSON>
</xsl:template>
<xsl:template match="fmp:ROW">
<ELEMENTS>
<xsl:apply-templates select="fmp:COL" />
</ELEMENTS>
</xsl:template>
<xsl:template match="fmp:COL">
<xsl:element name="colno">
<xsl:value-of select="fmp:DATA" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
没有输入xml,很难提出一些建议。但乍一看,这个
表示“输出一个元素
”。我认为您应该使用类似
编辑:
根据您的输入xml,“COL”元素的模板应该如下所示
<xsl:template match="COL">
<xsl:variable name="colPosition" select="position()" />
<!-- Prevent spaces in NAME attribute of FIELD element -->
<xsl:variable name="colName" select="translate($kMetaData[$colPosition]/@NAME, ' ', '_')" />
<xsl:element name="{$colName}">
<xsl:value-of select="DATA"/>
</xsl:element>
</xsl:template>
然后输出看起来像
<?xml version="1.0" encoding="utf-8"?>
<PERSON>
<ELEMENTS>
<FIRSTNAME>Richard</FIRSTNAME>
<LASTNAME>Katz</LASTNAME>
<MIDDLENAME>David</MIDDLENAME>
<REQUESTDT>1/1/2001</REQUESTDT>
<salutation>Mr</salutation>
<Bargaining_Unit>CSEA (02,03,04)</Bargaining_Unit>
<Field_134>b</Field_134>
</ELEMENTS>
</PERSON>
理查德
卡茨
大卫
1/1/2001
先生
CSEA(02,03,04)
B
输出如下:-Richard Katz David 1/1/2001 Mr CSEA(02,03,04)b-David Norton di 1/1/2011 Mr UUP(08)等,。我希望是字段名,如firstname、lastname、middlename等。它们是变量字段。谢谢您的帮助。您的输入xml是什么?输入数据集如下所示:-Richard-Katz-David-1/1/2001-Mr-CSEA(02,03,04)-B我们很接近,但仍然不存在。现在,问题似乎是从Filemaker读取数据。当我使用fmp:Col作为select和template时,我得到以下输出:-RichardKatzDavid1/1/2001MrCSEA(02,03,04)b列名(字段)消失了。没有fmp,记录为空。感谢您的帮助。以下是完整的输入xml: